@@ -2,6 +2,8 @@ import test from 'ava';
2
2
import { stub } from 'sinon' ;
3
3
import commitAnalyzer from '..' ;
4
4
5
+ const cwd = process . cwd ( ) ;
6
+
5
7
test . beforeEach ( t => {
6
8
const log = stub ( ) ;
7
9
t . context . log = log ;
@@ -10,7 +12,7 @@ test.beforeEach(t => {
10
12
11
13
test ( 'Parse with "conventional-changelog-angular" by default' , async t => {
12
14
const commits = [ { message : 'fix(scope1): First fix' } , { message : 'feat(scope2): Second feature' } ] ;
13
- const releaseType = await commitAnalyzer ( { } , { commits, logger : t . context . logger } ) ;
15
+ const releaseType = await commitAnalyzer ( { } , { cwd , commits, logger : t . context . logger } ) ;
14
16
15
17
t . is ( releaseType , 'minor' ) ;
16
18
t . true ( t . context . log . calledWith ( 'Analyzing commit: %s' , commits [ 0 ] . message ) ) ;
@@ -22,7 +24,7 @@ test('Parse with "conventional-changelog-angular" by default', async t => {
22
24
23
25
test ( 'Accept "preset" option' , async t => {
24
26
const commits = [ { message : 'Fix: First fix (fixes #123)' } , { message : 'Update: Second feature (fixes #456)' } ] ;
25
- const releaseType = await commitAnalyzer ( { preset : 'eslint' } , { commits, logger : t . context . logger } ) ;
27
+ const releaseType = await commitAnalyzer ( { preset : 'eslint' } , { cwd , commits, logger : t . context . logger } ) ;
26
28
27
29
t . is ( releaseType , 'minor' ) ;
28
30
t . true ( t . context . log . calledWith ( 'Analyzing commit: %s' , commits [ 0 ] . message ) ) ;
@@ -36,7 +38,7 @@ test('Accept "config" option', async t => {
36
38
const commits = [ { message : 'Fix: First fix (fixes #123)' } , { message : 'Update: Second feature (fixes #456)' } ] ;
37
39
const releaseType = await commitAnalyzer (
38
40
{ config : 'conventional-changelog-eslint' } ,
39
- { commits, logger : t . context . logger }
41
+ { cwd , commits, logger : t . context . logger }
40
42
) ;
41
43
42
44
t . is ( releaseType , 'minor' ) ;
@@ -54,7 +56,7 @@ test('Accept a "parseOpts" object as option', async t => {
54
56
] ;
55
57
const releaseType = await commitAnalyzer (
56
58
{ parserOpts : { headerPattern : / ^ % % ( .* ?) % % ( .* ) $ / , headerCorrespondence : [ 'tag' , 'shortDesc' ] } } ,
57
- { commits, logger : t . context . logger }
59
+ { cwd , commits, logger : t . context . logger }
58
60
) ;
59
61
60
62
t . is ( releaseType , 'minor' ) ;
@@ -72,7 +74,7 @@ test('Accept a partial "parseOpts" object as option', async t => {
72
74
config : 'conventional-changelog-eslint' ,
73
75
parserOpts : { headerPattern : / ^ % % ( .* ?) % % ( .* ) $ / , headerCorrespondence : [ 'type' , 'shortDesc' ] } ,
74
76
} ,
75
- { commits, logger : t . context . logger }
77
+ { cwd , commits, logger : t . context . logger }
76
78
) ;
77
79
78
80
t . is ( releaseType , 'patch' ) ;
@@ -89,7 +91,7 @@ test('Exclude commits if they have a matching revert commits', async t => {
89
91
{ hash : '456' , message : 'revert: feat(scope): First feature\n\nThis reverts commit 123.\n' } ,
90
92
{ message : 'fix(scope): First fix' } ,
91
93
] ;
92
- const releaseType = await commitAnalyzer ( { } , { commits, logger : t . context . logger } ) ;
94
+ const releaseType = await commitAnalyzer ( { } , { cwd , commits, logger : t . context . logger } ) ;
93
95
94
96
t . is ( releaseType , 'patch' ) ;
95
97
t . true ( t . context . log . calledWith ( 'Analyzing commit: %s' , commits [ 2 ] . message ) ) ;
@@ -101,7 +103,7 @@ test('Accept a "releaseRules" option that reference a requierable module', async
101
103
const commits = [ { message : 'fix(scope1): First fix' } , { message : 'feat(scope2): Second feature' } ] ;
102
104
const releaseType = await commitAnalyzer (
103
105
{ releaseRules : './test/fixtures/release-rules' } ,
104
- { commits, logger : t . context . logger }
106
+ { cwd , commits, logger : t . context . logger }
105
107
) ;
106
108
107
109
t . is ( releaseType , 'minor' ) ;
@@ -117,7 +119,7 @@ test('Return "major" if there is a breaking change, using default releaseRules',
117
119
{ message : 'Fix: First fix (fixes #123)' } ,
118
120
{ message : 'Update: Second feature (fixes #456) \n\n BREAKING CHANGE: break something' } ,
119
121
] ;
120
- const releaseType = await commitAnalyzer ( { preset : 'eslint' } , { commits, logger : t . context . logger } ) ;
122
+ const releaseType = await commitAnalyzer ( { preset : 'eslint' } , { cwd , commits, logger : t . context . logger } ) ;
121
123
122
124
t . is ( releaseType , 'major' ) ;
123
125
t . true ( t . context . log . calledWith ( 'Analyzing commit: %s' , commits [ 0 ] . message ) ) ;
@@ -129,7 +131,7 @@ test('Return "major" if there is a breaking change, using default releaseRules',
129
131
130
132
test ( 'Return "patch" if there is only types set to "patch", using default releaseRules' , async t => {
131
133
const commits = [ { message : 'fix: First fix (fixes #123)' } , { message : 'perf: perf improvement' } ] ;
132
- const releaseType = await commitAnalyzer ( { } , { commits, logger : t . context . logger } ) ;
134
+ const releaseType = await commitAnalyzer ( { } , { cwd , commits, logger : t . context . logger } ) ;
133
135
134
136
t . is ( releaseType , 'patch' ) ;
135
137
t . true ( t . context . log . calledWith ( 'Analyzing commit: %s' , commits [ 0 ] . message ) ) ;
@@ -142,11 +144,8 @@ test('Return "patch" if there is only types set to "patch", using default releas
142
144
test ( 'Allow to use regex in "releaseRules" configuration' , async t => {
143
145
const commits = [ { message : 'Chore: First chore (fixes #123)' } , { message : 'Docs: update README (fixes #456)' } ] ;
144
146
const releaseType = await commitAnalyzer (
145
- {
146
- preset : 'eslint' ,
147
- releaseRules : [ { tag : 'Chore' , release : 'patch' } , { message : '/README/' , release : 'minor' } ] ,
148
- } ,
149
- { commits, logger : t . context . logger }
147
+ { preset : 'eslint' , releaseRules : [ { tag : 'Chore' , release : 'patch' } , { message : '/README/' , release : 'minor' } ] } ,
148
+ { cwd, commits, logger : t . context . logger }
150
149
) ;
151
150
152
151
t . is ( releaseType , 'minor' ) ;
@@ -159,7 +158,7 @@ test('Allow to use regex in "releaseRules" configuration', async t => {
159
158
160
159
test ( 'Return "null" if no rule match' , async t => {
161
160
const commits = [ { message : 'doc: doc update' } , { message : 'chore: Chore' } ] ;
162
- const releaseType = await commitAnalyzer ( { } , { commits, logger : t . context . logger } ) ;
161
+ const releaseType = await commitAnalyzer ( { } , { cwd , commits, logger : t . context . logger } ) ;
163
162
164
163
t . is ( releaseType , null ) ;
165
164
t . true ( t . context . log . calledWith ( 'Analyzing commit: %s' , commits [ 0 ] . message ) ) ;
@@ -173,7 +172,7 @@ test('Process rules in order and apply highest match', async t => {
173
172
const commits = [ { message : 'Chore: First chore (fixes #123)' } , { message : 'Docs: update README (fixes #456)' } ] ;
174
173
const releaseType = await commitAnalyzer (
175
174
{ preset : 'eslint' , releaseRules : [ { tag : 'Chore' , release : 'minor' } , { tag : 'Chore' , release : 'patch' } ] } ,
176
- { commits, logger : t . context . logger }
175
+ { cwd , commits, logger : t . context . logger }
177
176
) ;
178
177
179
178
t . is ( releaseType , 'minor' ) ;
@@ -191,7 +190,7 @@ test('Process rules in order and apply highest match from config even if default
191
190
] ;
192
191
const releaseType = await commitAnalyzer (
193
192
{ preset : 'eslint' , releaseRules : [ { tag : 'Chore' , release : 'patch' } , { breaking : true , release : 'minor' } ] } ,
194
- { commits, logger : t . context . logger }
193
+ { cwd , commits, logger : t . context . logger }
195
194
) ;
196
195
197
196
t . is ( releaseType , 'minor' ) ;
@@ -206,7 +205,7 @@ test('Use default "releaseRules" if none of provided match', async t => {
206
205
const commits = [ { message : 'Chore: First chore' } , { message : 'Update: new feature' } ] ;
207
206
const releaseType = await commitAnalyzer (
208
207
{ preset : 'eslint' , releaseRules : [ { tag : 'Chore' , release : 'patch' } ] } ,
209
- { commits, logger : t . context . logger }
208
+ { cwd , commits, logger : t . context . logger }
210
209
) ;
211
210
212
211
t . is ( releaseType , 'minor' ) ;
@@ -218,40 +217,40 @@ test('Use default "releaseRules" if none of provided match', async t => {
218
217
} ) ;
219
218
220
219
test ( 'Throw error if "preset" doesn`t exist' , async t => {
221
- const error = await t . throws ( commitAnalyzer ( { preset : 'unknown-preset' } , { } ) ) ;
220
+ const error = await t . throws ( commitAnalyzer ( { preset : 'unknown-preset' } , { cwd } ) ) ;
222
221
223
222
t . is ( error . code , 'MODULE_NOT_FOUND' ) ;
224
223
} ) ;
225
224
226
225
test ( 'Throw error if "releaseRules" is not an Array or a String' , async t => {
227
226
await t . throws (
228
- commitAnalyzer ( { releaseRules : { } } , { } ) ,
227
+ commitAnalyzer ( { releaseRules : { } } , { cwd } ) ,
229
228
/ E r r o r i n c o m m i t - a n a l y z e r c o n f i g u r a t i o n : " r e l e a s e R u l e s " m u s t b e a n a r r a y o f r u l e s /
230
229
) ;
231
230
} ) ;
232
231
233
232
test ( 'Throw error if "releaseRules" option reference a requierable module that is not an Array or a String' , async t => {
234
233
await t . throws (
235
- commitAnalyzer ( { releaseRules : './test/fixtures/release-rules-invalid' } , { } ) ,
234
+ commitAnalyzer ( { releaseRules : './test/fixtures/release-rules-invalid' } , { cwd } ) ,
236
235
/ E r r o r i n c o m m i t - a n a l y z e r c o n f i g u r a t i o n : " r e l e a s e R u l e s " m u s t b e a n a r r a y o f r u l e s /
237
236
) ;
238
237
} ) ;
239
238
240
239
test ( 'Throw error if "config" doesn`t exist' , async t => {
241
240
const commits = [ { message : 'Fix: First fix (fixes #123)' } , { message : 'Update: Second feature (fixes #456)' } ] ;
242
- const error = await t . throws ( commitAnalyzer ( { config : 'unknown-config' } , { commits, logger : t . context . logger } ) ) ;
241
+ const error = await t . throws ( commitAnalyzer ( { config : 'unknown-config' } , { cwd , commits, logger : t . context . logger } ) ) ;
243
242
244
243
t . is ( error . code , 'MODULE_NOT_FOUND' ) ;
245
244
} ) ;
246
245
247
246
test ( 'Throw error if "releaseRules" reference invalid commit type' , async t => {
248
247
await t . throws (
249
- commitAnalyzer ( { preset : 'eslint' , releaseRules : [ { tag : 'Update' , release : 'invalid' } ] } , { } ) ,
248
+ commitAnalyzer ( { preset : 'eslint' , releaseRules : [ { tag : 'Update' , release : 'invalid' } ] } , { cwd } ) ,
250
249
/ E r r o r i n c o m m i t - a n a l y z e r c o n f i g u r a t i o n : " i n v a l i d " i s n o t a v a l i d r e l e a s e t y p e \. V a l i d v a l u e s a r e : \[ ? .* \] /
251
250
) ;
252
251
} ) ;
253
252
254
253
test ( 'Re-Throw error from "conventional-changelog-parser"' , async t => {
255
254
const commits = [ { message : 'Fix: First fix (fixes #123)' } , { message : 'Update: Second feature (fixes #456)' } ] ;
256
- await t . throws ( commitAnalyzer ( { parserOpts : { headerPattern : '\\' } } , { commits, logger : t . context . logger } ) ) ;
255
+ await t . throws ( commitAnalyzer ( { parserOpts : { headerPattern : '\\' } } , { cwd , commits, logger : t . context . logger } ) ) ;
257
256
} ) ;
0 commit comments