@@ -32,6 +32,7 @@ export interface TestData {
32
32
}
33
33
34
34
const environment = 'unit-test-environment' ;
35
+ const minimumRunningTimeInMinutes = 15 ;
35
36
const TEST_DATA : TestData = {
36
37
repositoryName : 'hello-world' ,
37
38
repositoryOwner : 'Codertocat' ,
@@ -58,7 +59,17 @@ const DEFAULT_RUNNERS = [
58
59
} ,
59
60
{
60
61
instanceId : 'i-not-registered-104' ,
61
- launchTime : moment ( new Date ( ) ) . subtract ( 5 , 'minutes' ) . toDate ( ) ,
62
+ launchTime : moment ( new Date ( ) )
63
+ . subtract ( minimumRunningTimeInMinutes - 1 , 'minutes' )
64
+ . toDate ( ) ,
65
+ repo : `doe/another-repo` ,
66
+ org : undefined ,
67
+ } ,
68
+ {
69
+ instanceId : 'i-not-registered-105' ,
70
+ launchTime : moment ( new Date ( ) )
71
+ . subtract ( minimumRunningTimeInMinutes + 5 , 'minutes' )
72
+ . toDate ( ) ,
62
73
repo : `doe/another-repo` ,
63
74
org : undefined ,
64
75
} ,
@@ -73,7 +84,7 @@ const DEFAULT_REGISTERED_RUNNERS: any = {
73
84
} ,
74
85
{
75
86
id : 102 ,
76
- name : 'i-idle-101 ' ,
87
+ name : 'i-idle-102 ' ,
77
88
} ,
78
89
{
79
90
id : 103 ,
@@ -91,8 +102,7 @@ describe('scaleDown', () => {
91
102
process . env . GITHUB_APP_CLIENT_SECRET = 'TEST_CLIENT_SECRET' ;
92
103
process . env . RUNNERS_MAXIMUM_COUNT = '3' ;
93
104
process . env . ENVIRONMENT = environment ;
94
- const minimumRunningTimeInMinutes = '15' ;
95
- process . env . MINIMUM_RUNNING_TIME_IN_MINUTES = minimumRunningTimeInMinutes ;
105
+ process . env . MINIMUM_RUNNING_TIME_IN_MINUTES = minimumRunningTimeInMinutes . toString ( ) ;
96
106
jest . clearAllMocks ( ) ;
97
107
mockOctokit . apps . getOrgInstallation . mockImplementation ( ( ) => ( {
98
108
data : {
@@ -166,15 +176,17 @@ describe('scaleDown', () => {
166
176
} ) ;
167
177
} ) ;
168
178
169
- it ( 'Terminate 2 of 4 runners for repo.' , async ( ) => {
179
+ it ( 'Terminate 3 of 5 runners for repo.' , async ( ) => {
170
180
await scaleDown ( ) ;
171
181
expect ( listRunners ) . toBeCalledWith ( {
172
182
environment : environment ,
173
183
} ) ;
174
184
175
185
expect ( mockOctokit . apps . getRepoInstallation ) . toBeCalled ( ) ;
176
-
177
- expect ( terminateRunner ) . toBeCalledTimes ( 2 ) ;
186
+ expect ( terminateRunner ) . toBeCalledTimes ( 3 ) ;
187
+ for ( const toTerminate of [ DEFAULT_RUNNERS [ 0 ] , DEFAULT_RUNNERS [ 1 ] , DEFAULT_RUNNERS [ 4 ] ] ) {
188
+ expect ( terminateRunner ) . toHaveBeenCalledWith ( toTerminate ) ;
189
+ }
178
190
} ) ;
179
191
} ) ;
180
192
@@ -187,15 +199,17 @@ describe('scaleDown', () => {
187
199
} ) ;
188
200
} ) ;
189
201
190
- it ( 'Terminate 2 of 4 runners for org.' , async ( ) => {
202
+ it ( 'Terminate 3 of 5 runners for org.' , async ( ) => {
191
203
await scaleDown ( ) ;
192
204
expect ( listRunners ) . toBeCalledWith ( {
193
205
environment : environment ,
194
206
} ) ;
195
207
196
208
expect ( mockOctokit . apps . getOrgInstallation ) . toBeCalled ( ) ;
197
-
198
- expect ( terminateRunner ) . toBeCalledTimes ( 2 ) ;
209
+ expect ( terminateRunner ) . toBeCalledTimes ( 3 ) ;
210
+ for ( const toTerminate of [ DEFAULT_RUNNERS [ 0 ] , DEFAULT_RUNNERS [ 1 ] , DEFAULT_RUNNERS [ 4 ] ] ) {
211
+ expect ( terminateRunner ) . toHaveBeenCalledWith ( toTerminate ) ;
212
+ }
199
213
} ) ;
200
214
} ) ;
201
215
} ) ;
0 commit comments