@@ -13,17 +13,42 @@ const {
13
13
const TestCLI = require ( '../fixtures/test_cli' ) ;
14
14
15
15
describe ( 'Jenkins' , ( ) => {
16
- it ( 'should fail if starting node-pull-request fails' , async ( ) => {
16
+ const owner = 'nodejs' ;
17
+ const repo = 'node-auto-test' ;
18
+ const prid = 123456 ;
19
+ const crumb = 'asdf1234' ;
20
+
21
+ before ( ( ) => {
22
+ sinon . stub ( FormData . prototype , 'append' ) . callsFake ( function ( key , value ) {
23
+ assert . strictEqual ( key , 'json' ) ;
24
+ const { parameter } = JSON . parse ( value ) ;
25
+ const expectedParameters = {
26
+ CERTIFY_SAFE : 'on' ,
27
+ TARGET_GITHUB_ORG : owner ,
28
+ TARGET_REPO_NAME : repo ,
29
+ PR_ID : prid ,
30
+ REBASE_ONTO : '<pr base branch>' ,
31
+ DESCRIPTION_SETTER_DESCRIPTION : ''
32
+ } ;
33
+ for ( const { name, value } of parameter ) {
34
+ assert . strictEqual ( value , expectedParameters [ name ] ) ;
35
+ delete expectedParameters [ name ] ;
36
+ }
37
+ assert . strictEqual ( Object . keys ( expectedParameters ) . length , 0 ) ;
38
+
39
+ this . _validated = true ;
40
+
41
+ return FormData . prototype . append . wrappedMethod . bind ( this ) ( key , value ) ;
42
+ } ) ;
43
+ } ) ;
44
+
45
+ it ( 'should fail if starting node-pull-request throws' , async ( ) => {
17
46
const cli = new TestCLI ( ) ;
18
- const crumb = 'asdf1234' ;
19
47
const request = {
20
48
text : sinon . stub ( ) . throws ( ) ,
21
49
json : sinon . stub ( ) . withArgs ( CI_CRUMB_URL )
22
50
. returns ( Promise . resolve ( { crumb } ) )
23
51
} ;
24
- const owner = 'nodejs' ;
25
- const repo = 'node-auto-test' ;
26
- const prid = 123456 ;
27
52
28
53
const jobRunner = new RunPRJob ( cli , request , owner , repo , prid ) ;
29
54
assert . strictEqual ( await jobRunner . start ( ) , false ) ;
@@ -34,55 +59,46 @@ describe('Jenkins', () => {
34
59
const request = {
35
60
json : sinon . stub ( ) . throws ( )
36
61
} ;
37
- const owner = 'nodejs' ;
38
- const repo = 'node-auto-test' ;
39
- const prid = 123456 ;
40
62
41
63
const jobRunner = new RunPRJob ( cli , request , owner , repo , prid ) ;
42
64
assert . strictEqual ( await jobRunner . start ( ) , false ) ;
43
65
} ) ;
44
66
45
67
it ( 'should start node-pull-request' , async ( ) => {
46
68
const cli = new TestCLI ( ) ;
47
- const crumb = 'asdf1234' ;
48
- const owner = 'nodejs' ;
49
- const repo = 'node-auto-test' ;
50
- const prid = 123456 ;
51
-
52
- sinon . stub ( FormData . prototype , 'append' ) . callsFake ( function ( key , value ) {
53
- assert . strictEqual ( key , 'json' ) ;
54
- const { parameter } = JSON . parse ( value ) ;
55
- const expectedParameters = {
56
- CERTIFY_SAFE : 'on' ,
57
- TARGET_GITHUB_ORG : owner ,
58
- TARGET_REPO_NAME : repo ,
59
- PR_ID : prid ,
60
- REBASE_ONTO : '<pr base branch>' ,
61
- DESCRIPTION_SETTER_DESCRIPTION : ''
62
- } ;
63
- for ( const { name, value } of parameter ) {
64
- assert . strictEqual ( value , expectedParameters [ name ] ) ;
65
- delete expectedParameters [ name ] ;
66
- }
67
- assert . strictEqual ( Object . keys ( expectedParameters ) . length , 0 ) ;
68
69
69
- this . _validated = true ;
70
+ const request = {
71
+ fetch : sinon . stub ( )
72
+ . callsFake ( ( url , { method, headers, body } ) => {
73
+ assert . strictEqual ( url , CI_PR_URL ) ;
74
+ assert . strictEqual ( method , 'POST' ) ;
75
+ assert . deepStrictEqual ( headers , { 'Jenkins-Crumb' : crumb } ) ;
76
+ assert . ok ( body . _validated ) ;
77
+ return Promise . resolve ( { status : 201 } ) ;
78
+ } ) ,
79
+ json : sinon . stub ( ) . withArgs ( CI_CRUMB_URL )
80
+ . returns ( Promise . resolve ( { crumb } ) )
81
+ } ;
82
+ const jobRunner = new RunPRJob ( cli , request , owner , repo , prid ) ;
83
+ assert . ok ( await jobRunner . start ( ) ) ;
84
+ } ) ;
70
85
71
- return FormData . prototype . append . wrappedMethod . bind ( this ) ( key , value ) ;
72
- } ) ;
86
+ it ( 'should return false if node-pull-request not started' , async ( ) => {
87
+ const cli = new TestCLI ( ) ;
73
88
74
89
const request = {
75
- text : sinon . stub ( )
90
+ fetch : sinon . stub ( )
76
91
. callsFake ( ( url , { method, headers, body } ) => {
77
92
assert . strictEqual ( url , CI_PR_URL ) ;
78
93
assert . strictEqual ( method , 'POST' ) ;
79
94
assert . deepStrictEqual ( headers , { 'Jenkins-Crumb' : crumb } ) ;
80
95
assert . ok ( body . _validated ) ;
96
+ return Promise . resolve ( { status : 401 } ) ;
81
97
} ) ,
82
98
json : sinon . stub ( ) . withArgs ( CI_CRUMB_URL )
83
99
. returns ( Promise . resolve ( { crumb } ) )
84
100
} ;
85
101
const jobRunner = new RunPRJob ( cli , request , owner , repo , prid ) ;
86
- assert . ok ( await jobRunner . start ( ) ) ;
102
+ assert . strictEqual ( await jobRunner . start ( ) , false ) ;
87
103
} ) ;
88
104
} ) ;
0 commit comments