@@ -104,7 +104,8 @@ describe('generate changeset file', () => {
104104
105105 fs . readFile = jest
106106 . fn < any > ( )
107- . mockResolvedValue ( `{"name":"packageName","version":"1.0.0"}` )
107+ . mockResolvedValueOnce ( `{}` )
108+ . mockResolvedValueOnce ( `{"name":"packageName","version":"1.0.0"}` )
108109 fs . writeFile = jest . fn < any > ( )
109110
110111 await run ( )
@@ -138,7 +139,8 @@ describe('generate changeset file', () => {
138139
139140 fs . readFile = jest
140141 . fn < any > ( )
141- . mockResolvedValue ( `{"name":"packageName","workspaces":[]}` )
142+ . mockResolvedValueOnce ( `{}` )
143+ . mockResolvedValueOnce ( `{"name":"packageName","workspaces":[]}` )
142144 fs . writeFile = jest . fn < any > ( )
143145
144146 await run ( )
@@ -167,7 +169,74 @@ describe('generate changeset file', () => {
167169` ,
168170 } )
169171
170- fs . readFile = jest . fn < any > ( ) . mockResolvedValue ( `{"name":"packageName"}` )
172+ fs . readFile = jest
173+ . fn < any > ( )
174+ . mockResolvedValueOnce ( `{}` )
175+ . mockResolvedValueOnce ( `{"name":"packageName"}` )
176+ fs . writeFile = jest . fn < any > ( )
177+
178+ await run ( )
179+
180+ expect ( fs . readFile ) . toHaveBeenCalledWith ( file , 'utf8' )
181+ expect ( console . log ) . toHaveBeenCalledWith ( 'No packages modified, skipping' )
182+ } )
183+
184+ it ( 'should ignore changeset ignored packages' , async ( ) => {
185+ const file = 'test/package.json'
186+
187+ ; ( simpleGit as jest . Mock ) . mockReturnValue ( {
188+ branch : ( ) => ( {
189+ current : 'renovate/test' ,
190+ } ) ,
191+ diffSummary : ( ) => ( {
192+ files : [
193+ {
194+ file,
195+ } ,
196+ ] ,
197+ } ) ,
198+ show : ( ) => `
199+ + "package": "version"
200+ + "package2": "version2"
201+ ` ,
202+ } )
203+
204+ fs . readFile = jest
205+ . fn < any > ( )
206+ . mockResolvedValueOnce ( `{"ignore":["packageName"]}` )
207+ . mockResolvedValueOnce ( `{"name":"packageName","version":"1.0.0"}` )
208+ fs . writeFile = jest . fn < any > ( )
209+
210+ await run ( )
211+
212+ expect ( fs . readFile ) . toHaveBeenCalledWith ( file , 'utf8' )
213+ expect ( console . log ) . toHaveBeenCalledWith ( 'No packages modified, skipping' )
214+ } )
215+
216+ it ( 'should ignore changeset ignored packages with star' , async ( ) => {
217+ const file = 'test/package.json'
218+
219+ ; ( simpleGit as jest . Mock ) . mockReturnValue ( {
220+ branch : ( ) => ( {
221+ current : 'renovate/test' ,
222+ } ) ,
223+ diffSummary : ( ) => ( {
224+ files : [
225+ {
226+ file,
227+ } ,
228+ ] ,
229+ } ) ,
230+ show : ( ) => `
231+ + "package": "version"
232+ + "package2": "version2"
233+ ` ,
234+ } )
235+
236+ fs . readFile = jest
237+ . fn < any > ( )
238+ . mockResolvedValueOnce ( `{"ignore":["@example/*"]}` )
239+ . mockResolvedValueOnce ( `{"name":"@example/test","version":"1.0.0"}` )
171240 fs . writeFile = jest . fn < any > ( )
172241
173242 await run ( )
0 commit comments