@@ -5,6 +5,9 @@ import * as path from 'path';
5
5
import simpleGit from 'simple-git' ;
6
6
import { initRepo } from '../src/operations/init-repo' ;
7
7
import { setupRemotes } from '../src/operations/setup-remotes' ;
8
+ import { tagBackportReviewers } from '../src/utils' ;
9
+ import { PRChange } from '../src/enums' ;
10
+ import { updateManualBackport } from '../src/operations/update-manual-backport' ;
8
11
9
12
let dirObject : { dir ?: string } | null = null ;
10
13
@@ -13,6 +16,22 @@ const saveDir = (o: { dir: string }) => {
13
16
return o . dir ;
14
17
} ;
15
18
19
+ const backportPRMergedEvent = require ( './fixtures/backport_pull_request.merged.json' ) ;
20
+ const backportPRClosedEvent = require ( './fixtures/backport_pull_request.closed.json' ) ;
21
+ const backportPROpenedEvent = require ( './fixtures/backport_pull_request.opened.json' ) ;
22
+
23
+ jest . mock ( '../src/utils' , ( ) => ( {
24
+ tagBackportReviewers : jest . fn ( ) . mockReturnValue ( Promise . resolve ( ) ) ,
25
+ isSemverMinorPR : jest . fn ( ) . mockReturnValue ( false ) ,
26
+ } ) ) ;
27
+
28
+ jest . mock ( '../src/utils/label-utils' , ( ) => ( {
29
+ labelExistsOnPR : jest . fn ( ) . mockResolvedValue ( true ) ,
30
+ getSemverLabel : jest . fn ( ) . mockResolvedValue ( false ) ,
31
+ addLabels : jest . fn ( ) ,
32
+ removeLabel : jest . fn ( ) ,
33
+ } ) ) ;
34
+
16
35
describe ( 'runner' , ( ) => {
17
36
jest . setTimeout ( 30000 ) ;
18
37
console . error = jest . fn ( ) ;
@@ -101,4 +120,46 @@ describe('runner', () => {
101
120
}
102
121
} ) ;
103
122
} ) ;
123
+
124
+ describe ( 'updateManualBackport()' , ( ) => {
125
+ let context : any ;
126
+ let octokit = {
127
+ pulls : {
128
+ get : jest . fn ( ) . mockReturnValue ( Promise . resolve ( { } ) ) ,
129
+ } ,
130
+ issues : {
131
+ createComment : jest . fn ( ) . mockReturnValue ( Promise . resolve ( { } ) ) ,
132
+ listComments : jest . fn ( ) . mockReturnValue ( Promise . resolve ( { data : [ ] } ) ) ,
133
+ } ,
134
+ } ;
135
+
136
+ it ( 'tags reviewers on manual backport creation' , async ( ) => {
137
+ context = {
138
+ ...backportPROpenedEvent ,
139
+ octokit,
140
+ repo : jest . fn ( ) ,
141
+ } ;
142
+ await updateManualBackport ( context , PRChange . OPEN , 1234 ) ;
143
+ expect ( tagBackportReviewers ) . toHaveBeenCalled ( ) ;
144
+ } ) ;
145
+
146
+ it ( 'does not tag reviewers on merged PRs' , async ( ) => {
147
+ context = {
148
+ ...backportPRMergedEvent ,
149
+ octokit,
150
+ repo : jest . fn ( ) ,
151
+ } ;
152
+ await updateManualBackport ( context , PRChange . MERGE , 1234 ) ;
153
+ expect ( tagBackportReviewers ) . not . toHaveBeenCalled ( ) ;
154
+ } ) ;
155
+ it ( 'does not tag reviewers on closed PRs' , async ( ) => {
156
+ context = {
157
+ ...backportPRClosedEvent ,
158
+ octokit,
159
+ repo : jest . fn ( ) ,
160
+ } ;
161
+ await updateManualBackport ( context , PRChange . CLOSE , 1234 ) ;
162
+ expect ( tagBackportReviewers ) . not . toHaveBeenCalled ( ) ;
163
+ } ) ;
164
+ } ) ;
104
165
} ) ;
0 commit comments