11import { UnparsedSourceFile } from '../../shared/types' ;
2- import { generateChangeLog } from '../generate-change-log' ;
2+ import { ChangeLogPageData , generateChangeLog } from '../generate-change-log' ;
33import { assertEither } from '../../test-helpers/assert-either' ;
4+ import { isSkip } from '../../shared/utils' ;
45
56const config = {
67 fileName : 'changelog' ,
@@ -9,13 +10,26 @@ const config = {
910 currentVersionDir : '' ,
1011 previousVersionDir : '' ,
1112 exclude : [ ] ,
13+ skipIfNoChanges : false ,
1214} ;
1315
1416describe ( 'when generating a changelog' , ( ) => {
17+ it ( 'should not skip when skipIfNoChanges, even if there are no changes' , async ( ) => {
18+ const result = await generateChangeLog ( [ ] , [ ] , { ...config } ) ( ) ;
19+
20+ assertEither ( result , ( data ) => expect ( isSkip ( data ) ) . toBe ( false ) ) ;
21+ } ) ;
22+
23+ it ( 'should skip when there are no changes' , async ( ) => {
24+ const result = await generateChangeLog ( [ ] , [ ] , { ...config , skipIfNoChanges : true } ) ( ) ;
25+
26+ assertEither ( result , ( data ) => expect ( isSkip ( data ) ) . toBe ( true ) ) ;
27+ } ) ;
28+
1529 it ( 'should return a file path' , async ( ) => {
1630 const result = await generateChangeLog ( [ ] , [ ] , config ) ( ) ;
1731
18- assertEither ( result , ( data ) => expect ( data . outputDocPath ) . toContain ( 'changelog.md' ) ) ;
32+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . outputDocPath ) . toContain ( 'changelog.md' ) ) ;
1933 } ) ;
2034
2135 describe ( 'that does not include new classes' , ( ) => {
@@ -25,7 +39,7 @@ describe('when generating a changelog', () => {
2539
2640 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
2741
28- assertEither ( result , ( data ) => expect ( data . content ) . not . toContain ( '## New Classes' ) ) ;
42+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . not . toContain ( '## New Classes' ) ) ;
2943 } ) ;
3044 } ) ;
3145
@@ -40,7 +54,7 @@ describe('when generating a changelog', () => {
4054
4155 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
4256
43- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '## New Classes' ) ) ;
57+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '## New Classes' ) ) ;
4458 } ) ;
4559
4660 it ( 'should include the new class name' , async ( ) => {
@@ -53,7 +67,7 @@ describe('when generating a changelog', () => {
5367
5468 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
5569
56- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '### Test' ) ) ;
70+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '### Test' ) ) ;
5771 } ) ;
5872
5973 it ( 'should include the new class description' , async ( ) => {
@@ -71,7 +85,7 @@ describe('when generating a changelog', () => {
7185
7286 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
7387
74- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( 'This is a test class.' ) ) ;
88+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( 'This is a test class.' ) ) ;
7589 } ) ;
7690 } ) ;
7791
@@ -86,7 +100,7 @@ describe('when generating a changelog', () => {
86100
87101 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
88102
89- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '## New Interfaces' ) ) ;
103+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '## New Interfaces' ) ) ;
90104 } ) ;
91105
92106 it ( 'should include the new interface name' , async ( ) => {
@@ -99,7 +113,7 @@ describe('when generating a changelog', () => {
99113
100114 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
101115
102- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '### Test' ) ) ;
116+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '### Test' ) ) ;
103117 } ) ;
104118
105119 it ( 'should include the new interface description' , async ( ) => {
@@ -117,7 +131,9 @@ describe('when generating a changelog', () => {
117131
118132 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
119133
120- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( 'This is a test interface.' ) ) ;
134+ assertEither ( result , ( data ) =>
135+ expect ( ( data as ChangeLogPageData ) . content ) . toContain ( 'This is a test interface.' ) ,
136+ ) ;
121137 } ) ;
122138 } ) ;
123139
@@ -130,7 +146,7 @@ describe('when generating a changelog', () => {
130146
131147 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
132148
133- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '## New Enums' ) ) ;
149+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '## New Enums' ) ) ;
134150 } ) ;
135151
136152 it ( 'should include the new enum name' , async ( ) => {
@@ -141,7 +157,7 @@ describe('when generating a changelog', () => {
141157
142158 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
143159
144- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '### Test' ) ) ;
160+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '### Test' ) ) ;
145161 } ) ;
146162
147163 it ( 'should include the new enum description' , async ( ) => {
@@ -157,7 +173,7 @@ describe('when generating a changelog', () => {
157173
158174 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
159175
160- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( 'This is a test enum.' ) ) ;
176+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( 'This is a test enum.' ) ) ;
161177 } ) ;
162178 } ) ;
163179
@@ -172,7 +188,7 @@ describe('when generating a changelog', () => {
172188
173189 const result = await generateChangeLog ( oldBundle , newBundle , { ...config , scope : [ 'global' ] } ) ( ) ;
174190
175- assertEither ( result , ( data ) => expect ( data . content ) . not . toContain ( '## New Classes' ) ) ;
191+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . not . toContain ( '## New Classes' ) ) ;
176192 } ) ;
177193 } ) ;
178194
@@ -187,7 +203,7 @@ describe('when generating a changelog', () => {
187203
188204 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
189205
190- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '## Removed Types' ) ) ;
206+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '## Removed Types' ) ) ;
191207 } ) ;
192208
193209 it ( 'should include the removed type name' , async ( ) => {
@@ -200,7 +216,7 @@ describe('when generating a changelog', () => {
200216
201217 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
202218
203- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '- Test' ) ) ;
219+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '- Test' ) ) ;
204220 } ) ;
205221 } ) ;
206222
@@ -219,7 +235,9 @@ describe('when generating a changelog', () => {
219235
220236 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
221237
222- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '## New or Modified Members in Existing Types' ) ) ;
238+ assertEither ( result , ( data ) =>
239+ expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '## New or Modified Members in Existing Types' ) ,
240+ ) ;
223241 } ) ;
224242
225243 it ( 'should include the new or modified type name' , async ( ) => {
@@ -236,7 +254,7 @@ describe('when generating a changelog', () => {
236254
237255 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
238256
239- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( '### Test' ) ) ;
257+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( '### Test' ) ) ;
240258 } ) ;
241259
242260 it ( 'should include the new or modified member name' , async ( ) => {
@@ -253,7 +271,7 @@ describe('when generating a changelog', () => {
253271
254272 const result = await generateChangeLog ( oldBundle , newBundle , config ) ( ) ;
255273
256- assertEither ( result , ( data ) => expect ( data . content ) . toContain ( 'myMethod' ) ) ;
274+ assertEither ( result , ( data ) => expect ( ( data as ChangeLogPageData ) . content ) . toContain ( 'myMethod' ) ) ;
257275 } ) ;
258276 } ) ;
259277} ) ;
0 commit comments