@@ -2,6 +2,7 @@ import assert from 'assert';
22import fsp from 'fs/promises' ;
33import { beforeEach , describe , it , mock } from 'node:test' ;
44import { createAmplifyDepUpdater } from './create_amplify_dep_updater.js' ;
5+ import { EOL } from 'os' ;
56
67void describe ( 'createAmplifyDepUpdater' , ( ) => {
78 const mockedFsReadFile = mock . method ( fsp , 'readFile' , ( ) =>
@@ -19,14 +20,43 @@ void describe('createAmplifyDepUpdater', () => {
1920 } ) ,
2021 ) ;
2122 const mockedFsWriteFile = mock . method ( fsp , 'writeFile' , mock . fn ( ) ) ;
23+ const ghContextMocked = {
24+ eventName : '' ,
25+ sha : '' ,
26+ ref : '' ,
27+ workflow : '' ,
28+ action : '' ,
29+ actor : '' ,
30+ job : '' ,
31+ runAttempt : 0 ,
32+ runNumber : 0 ,
33+ runId : 0 ,
34+ apiUrl : '' ,
35+ serverUrl : '' ,
36+ graphqlUrl : '' ,
37+ payload : { } ,
38+ issue : {
39+ owner : '' ,
40+ repo : '' ,
41+ number : 0 ,
42+ } ,
43+ repo : {
44+ owner : '' ,
45+ repo : '' ,
46+ } ,
47+ } ;
2248
2349 beforeEach ( ( ) => {
2450 mockedFsReadFile . mock . resetCalls ( ) ;
2551 mockedFsWriteFile . mock . resetCalls ( ) ;
2652 } ) ;
2753
2854 void it ( 'successfully pins new dev version' , async ( ) => {
29- await createAmplifyDepUpdater ( [ { name : 'aws-cdk-lib' , version : '2.1.0' } ] ) ;
55+ await createAmplifyDepUpdater (
56+ [ { name : 'aws-cdk-lib' , version : '2.1.0' } ] ,
57+ undefined ,
58+ ghContextMocked ,
59+ ) ;
3060 assert . strictEqual ( mockedFsReadFile . mock . callCount ( ) , 1 ) ;
3161 assert . strictEqual ( mockedFsWriteFile . mock . callCount ( ) , 1 ) ;
3262 assert . deepStrictEqual (
@@ -54,6 +84,7 @@ void describe('createAmplifyDepUpdater', () => {
5484 await createAmplifyDepUpdater (
5585 [ { name : 'test-prod-package' , version : '1.1.0' } ] ,
5686 [ 'test-prod-package' ] ,
87+ ghContextMocked ,
5788 ) ;
5889 assert . strictEqual ( mockedFsReadFile . mock . callCount ( ) , 1 ) ;
5990 assert . strictEqual ( mockedFsWriteFile . mock . callCount ( ) , 1 ) ;
@@ -88,6 +119,7 @@ void describe('createAmplifyDepUpdater', () => {
88119 { name : 'test-prod-package' , version : '1.1.0' } ,
89120 ] ,
90121 [ 'aws-cdk' , 'aws-cdk-lib' , 'test-prod-package' ] ,
122+ ghContextMocked ,
91123 ) ;
92124 assert . strictEqual ( mockedFsReadFile . mock . callCount ( ) , 1 ) ;
93125 assert . strictEqual ( mockedFsWriteFile . mock . callCount ( ) , 1 ) ;
@@ -115,6 +147,54 @@ void describe('createAmplifyDepUpdater', () => {
115147 ) ;
116148 } ) ;
117149
150+ void it ( 'creates changeset file for dependabot pull request' , async ( ) => {
151+ const dependabotPRContext = {
152+ ...ghContextMocked ,
153+ payload : {
154+ pull_request : {
155+ number : 1 ,
156+ body : 'Bumps aws-cdk-lib from 2.0.0 to 2.1.0' ,
157+ head : {
158+ ref : 'dependabot/test_version_update_branch' ,
159+ // eslint-disable-next-line spellcheck/spell-checker
160+ sha : 'abcd1234' , // used for naming the changeset file
161+ } ,
162+ } ,
163+ } ,
164+ } ;
165+ const expectedChangesetContent = `---${ EOL } 'create-amplify': patch${ EOL } ---${ EOL + EOL } bump create amplify dependencies${ EOL } ` ;
166+ await createAmplifyDepUpdater (
167+ [ { name : 'aws-cdk-lib' , version : '2.1.0' } ] ,
168+ undefined ,
169+ dependabotPRContext ,
170+ ) ;
171+ assert . strictEqual ( mockedFsReadFile . mock . callCount ( ) , 1 ) ;
172+ assert . strictEqual ( mockedFsWriteFile . mock . callCount ( ) , 2 ) ;
173+ assert . deepStrictEqual (
174+ mockedFsWriteFile . mock . calls [ 0 ] . arguments [ 1 ] ,
175+ JSON . stringify (
176+ {
177+ defaultDevPackages : [
178+ '@aws-amplify/backend' ,
179+ '@aws-amplify/backend-cli' ,
180+ 181+ 'constructs@^10.0.0' ,
182+ 'typescript@^5.0.0' ,
183+ 'tsx' ,
184+ 'esbuild' ,
185+ ] ,
186+ defaultProdPackages :
[ 'aws-amplify' , '[email protected] ' ] , 187+ } ,
188+ null ,
189+ 2 ,
190+ ) ,
191+ ) ;
192+ assert . deepStrictEqual (
193+ mockedFsWriteFile . mock . calls [ 1 ] . arguments [ 1 ] ,
194+ expectedChangesetContent ,
195+ ) ;
196+ } ) ;
197+
118198 void it ( 'does nothing if there are no provided dependencies' , async ( ) => {
119199 await createAmplifyDepUpdater ( [ ] ) ;
120200 assert . strictEqual ( mockedFsReadFile . mock . callCount ( ) , 0 ) ;
0 commit comments