@@ -23,150 +23,70 @@ const makeCommit = (msg) => {
2323}
2424
2525test ( 'rule: fixes-url' , ( t ) => {
26- t . test ( 'issue number' , ( tt ) => {
27- tt . plan ( 7 )
28- const context = makeCommit ( `test: fix something
29-
30- Fixes: #1234`
31- )
32-
33- context . report = ( opts ) => {
34- tt . pass ( 'called report' )
35- tt . equal ( opts . id , 'fixes-url' , 'id' )
36- tt . equal ( opts . message , NOT_AN_ISSUE_NUMBER , 'message' )
37- tt . equal ( opts . string , '#1234' , 'string' )
38- tt . equal ( opts . line , 1 , 'line' )
39- tt . equal ( opts . column , 7 , 'column' )
40- tt . equal ( opts . level , 'fail' , 'level' )
41- }
42-
43- Rule . validate ( context )
44- } )
45-
46- t . test ( 'GitHub issue URL' , ( tt ) => {
47- tt . plan ( 7 )
48- const url = 'https://github.com/nodejs/node/issues/1234'
49- const context = makeCommit ( `test: fix something
50-
51- Fixes: ${ url } `
52- )
53-
54- context . report = ( opts ) => {
55- tt . pass ( 'called report' )
56- tt . equal ( opts . id , 'fixes-url' , 'id' )
57- tt . equal ( opts . message , VALID_FIXES_URL , 'message' )
58- tt . equal ( opts . string , url , 'string' )
59- tt . equal ( opts . line , 1 , 'line' )
60- tt . equal ( opts . column , 7 , 'column' )
61- tt . equal ( opts . level , 'pass' , 'level' )
62- }
63-
64- Rule . validate ( context )
65- } )
66-
67- t . test ( 'GitHub issue URL with comment' , ( tt ) => {
68- tt . plan ( 7 )
69- const url = 'https://github.com/nodejs/node/issues/1234#issuecomment-1234'
70- const context = makeCommit ( `test: fix something
26+ const valid = [
27+ [ 'GitHub issue URL'
28+ , 'https://github.com/nodejs/node/issues/1234' ]
29+ , [ 'GitHub issue URL with comment'
30+ , 'https://github.com/nodejs/node/issues/1234#issuecomment-1234' ]
31+ , [ 'GitHub PR URL with comment'
32+ , 'https://github.com/nodejs/node/pull/1234#issuecomment-1234' ]
33+ , [ 'GitHub PR URL with discussion comment'
34+ , 'https://github.com/nodejs/node/pull/1234#discussion_r1234' ]
35+ ]
36+
37+ for ( const [ name , url ] of valid ) {
38+ t . test ( name , ( tt ) => {
39+ tt . plan ( 7 )
40+ const context = makeCommit ( `test: fix something
7141
7242Fixes: ${ url } `
73- )
74-
75- context . report = ( opts ) => {
76- tt . pass ( 'called report' )
77- tt . equal ( opts . id , 'fixes-url' , 'id' )
78- tt . equal ( opts . message , VALID_FIXES_URL , 'message' )
79- tt . equal ( opts . string , url , 'string' )
80- tt . equal ( opts . line , 1 , 'line' )
81- tt . equal ( opts . column , 7 , 'column' )
82- tt . equal ( opts . level , 'pass' , 'level' )
83- }
84-
85- Rule . validate ( context )
86- } )
87-
88- t . test ( 'GitHub PR URL' , ( tt ) => {
89- tt . plan ( 7 )
90- const url = 'https://github.com/nodejs/node/pull/1234'
91- const context = makeCommit ( `test: fix something
43+ )
44+
45+ context . report = ( opts ) => {
46+ tt . pass ( 'called report' )
47+ tt . equal ( opts . id , 'fixes-url' , 'id' )
48+ tt . equal ( opts . message , VALID_FIXES_URL , 'message' )
49+ tt . equal ( opts . string , url , 'string' )
50+ tt . equal ( opts . line , 1 , 'line' )
51+ tt . equal ( opts . column , 7 , 'column' )
52+ tt . equal ( opts . level , 'pass' , 'level' )
53+ }
54+
55+ Rule . validate ( context )
56+ } )
57+ }
58+
59+ const invalid = [
60+ [ 'issue number' , NOT_AN_ISSUE_NUMBER
61+ , '#1234' ]
62+ , [ 'GitHub PR URL' , INVALID_PRURL
63+ , 'https://github.com/nodejs/node/pull/1234' ]
64+ , [ 'non-GitHub URL' , NOT_A_GITHUB_URL
65+ , 'https://nodejs.org' ]
66+ , [ 'not a URL or issue number' , NOT_A_GITHUB_URL
67+ , 'fhqwhgads' ]
68+ ]
69+ for ( const [ name , expected , url ] of invalid ) {
70+ t . test ( name , ( tt ) => {
71+ tt . plan ( 7 )
72+ const context = makeCommit ( `test: fix something
9273
9374Fixes: ${ url } `
94- )
95-
96- context . report = ( opts ) => {
97- tt . pass ( 'called report' )
98- tt . equal ( opts . id , 'fixes-url' , 'id' )
99- tt . equal ( opts . message , INVALID_PRURL , 'message' )
100- tt . equal ( opts . string , url , 'string' )
101- tt . equal ( opts . line , 1 , 'line' )
102- tt . equal ( opts . column , 7 , 'column' )
103- tt . equal ( opts . level , 'fail' , 'level' )
104- }
105-
106- Rule . validate ( context )
107- } )
108-
109- t . test ( 'GitHub PR URL with comment' , ( tt ) => {
110- tt . plan ( 7 )
111- const url = 'https://github.com/nodejs/node/pull/1234#issuecomment-1234'
112- const context = makeCommit ( `test: fix something
113-
114- Fixes: ${ url } `
115- )
116-
117- context . report = ( opts ) => {
118- tt . pass ( 'called report' )
119- tt . equal ( opts . id , 'fixes-url' , 'id' )
120- tt . equal ( opts . message , VALID_FIXES_URL , 'message' )
121- tt . equal ( opts . string , url , 'string' )
122- tt . equal ( opts . line , 1 , 'line' )
123- tt . equal ( opts . column , 7 , 'column' )
124- tt . equal ( opts . level , 'pass' , 'level' )
125- }
126-
127- Rule . validate ( context )
128- } )
129-
130- t . test ( 'GitHub PR URL with discussion comment' , ( tt ) => {
131- tt . plan ( 7 )
132- const url = 'https://github.com/nodejs/node/pull/1234#discussion_r1234'
133- const context = makeCommit ( `test: fix something
134-
135- Fixes: ${ url } `
136- )
137-
138- context . report = ( opts ) => {
139- tt . pass ( 'called report' )
140- tt . equal ( opts . id , 'fixes-url' , 'id' )
141- tt . equal ( opts . message , VALID_FIXES_URL , 'message' )
142- tt . equal ( opts . string , url , 'string' )
143- tt . equal ( opts . line , 1 , 'line' )
144- tt . equal ( opts . column , 7 , 'column' )
145- tt . equal ( opts . level , 'pass' , 'level' )
146- }
147-
148- Rule . validate ( context )
149- } )
150-
151- t . test ( 'non-GitHub URL' , ( tt ) => {
152- tt . plan ( 7 )
153- const context = makeCommit ( `test: fix something
154-
155- Fixes: https://nodejs.org`
156- )
157-
158- context . report = ( opts ) => {
159- tt . pass ( 'called report' )
160- tt . equal ( opts . id , 'fixes-url' , 'id' )
161- tt . equal ( opts . message , NOT_A_GITHUB_URL , 'message' )
162- tt . equal ( opts . string , 'https://nodejs.org' , 'string' )
163- tt . equal ( opts . line , 1 , 'line' )
164- tt . equal ( opts . column , 7 , 'column' )
165- tt . equal ( opts . level , 'fail' , 'level' )
166- }
167-
168- Rule . validate ( context )
169- } )
75+ )
76+
77+ context . report = ( opts ) => {
78+ tt . pass ( 'called report' )
79+ tt . equal ( opts . id , 'fixes-url' , 'id' )
80+ tt . equal ( opts . message , expected , 'message' )
81+ tt . equal ( opts . string , url , 'string' )
82+ tt . equal ( opts . line , 1 , 'line' )
83+ tt . equal ( opts . column , 7 , 'column' )
84+ tt . equal ( opts . level , 'fail' , 'level' )
85+ }
86+
87+ Rule . validate ( context )
88+ } )
89+ }
17090
17191 t . end ( )
17292} )
0 commit comments