@@ -3,13 +3,20 @@ import * as os from 'os';
3
3
import * as path from 'path' ;
4
4
import nock , { Scope } from 'nock' ;
5
5
6
- import { InstallStateEvent , Installer , Paths } from '../src/index' ;
6
+ import {
7
+ InstallStateEvent ,
8
+ Installer ,
9
+ Paths ,
10
+ InstallState ,
11
+ } from '../src/index' ;
7
12
8
13
describe ( 'Installer' , ( ) => {
9
14
let tmpdir : string ;
10
15
let paths : Partial < Paths > ;
11
16
let nockScope : Scope ;
12
17
let installer : Installer ;
18
+ const { missing, downloading, downloaded, installing, installed } =
19
+ InstallState ;
13
20
const version12 = '12.0.15' as const ;
14
21
const version13 = '13.1.7' as const ;
15
22
const version = version13 ;
@@ -65,7 +72,7 @@ describe('Installer', () => {
65
72
const func = ( ) => installer . remove ( version ) ;
66
73
const { events } = await listenWhile ( installer , func ) ;
67
74
68
- expect ( installer . state ( version ) ) . toBe ( ' missing' ) ;
75
+ expect ( installer . state ( version ) ) . toBe ( missing ) ;
69
76
70
77
return { events } ;
71
78
}
@@ -77,15 +84,15 @@ describe('Installer', () => {
77
84
} ;
78
85
79
86
// Version is already downloaded and present in local
80
- if ( installer . state ( version ) !== ' missing' ) {
87
+ if ( installer . state ( version ) !== missing ) {
81
88
isDownloaded = true ;
82
89
}
83
90
const func = ( ) => installer . install ( version , { progressCallback } ) ;
84
91
const { events, result } = await listenWhile ( installer , func ) ;
85
92
const exec = result as string ;
86
93
87
94
expect ( isDownloaded ) . toBe ( true ) ;
88
- expect ( installer . state ( version ) ) . toBe ( ' installed' ) ;
95
+ expect ( installer . state ( version ) ) . toBe ( installed ) ;
89
96
expect ( installer . installedVersion ) . toBe ( version ) ;
90
97
91
98
return { events, exec } ;
@@ -98,7 +105,7 @@ describe('Installer', () => {
98
105
} ;
99
106
100
107
// Version is already downloaded and present in local
101
- if ( installer . state ( version ) !== ' missing' ) {
108
+ if ( installer . state ( version ) !== missing ) {
102
109
isDownloaded = true ;
103
110
}
104
111
const func = ( ) =>
@@ -110,7 +117,7 @@ describe('Installer', () => {
110
117
111
118
expect ( isDownloaded ) . toBe ( true ) ;
112
119
expect ( fs . existsSync ( zipfile ) ) . toBe ( true ) ;
113
- expect ( installer . state ( version ) ) . toBe ( ' downloaded' ) ;
120
+ expect ( installer . state ( version ) ) . toBe ( downloaded ) ;
114
121
115
122
return { events, zipfile } ;
116
123
}
@@ -134,13 +141,13 @@ describe('Installer', () => {
134
141
describe ( 'ensureDownloaded()' , ( ) => {
135
142
it ( 'downloads the version if needed' , async ( ) => {
136
143
// setup: version is not installed
137
- expect ( installer . state ( version ) ) . toBe ( ' missing' ) ;
144
+ expect ( installer . state ( version ) ) . toBe ( missing ) ;
138
145
139
146
// test that the zipfile was downloaded
140
147
const { events } = await doDownload ( installer , version ) ;
141
148
expect ( events ) . toStrictEqual ( [
142
- { version, state : ' downloading' } ,
143
- { version, state : ' downloaded' } ,
149
+ { version, state : downloading } ,
150
+ { version, state : downloaded } ,
144
151
] ) ;
145
152
} ) ;
146
153
@@ -163,12 +170,12 @@ describe('Installer', () => {
163
170
await doDownload ( installer , version ) ;
164
171
165
172
const { events } = await doRemove ( installer , version ) ;
166
- expect ( events ) . toStrictEqual ( [ { version, state : ' missing' } ] ) ;
173
+ expect ( events ) . toStrictEqual ( [ { version, state : missing } ] ) ;
167
174
} ) ;
168
175
169
176
it ( 'does nothing if the version is missing' , async ( ) => {
170
177
// setup: version is not installed
171
- expect ( installer . state ( version ) ) . toBe ( ' missing' ) ;
178
+ expect ( installer . state ( version ) ) . toBe ( missing ) ;
172
179
173
180
const { events } = await doRemove ( installer , version ) ;
174
181
expect ( events ) . toStrictEqual ( [ ] ) ;
@@ -179,35 +186,35 @@ describe('Installer', () => {
179
186
await doInstall ( installer , version ) ;
180
187
181
188
const { events } = await doRemove ( installer , version ) ;
182
- expect ( events ) . toStrictEqual ( [ { version, state : ' missing' } ] ) ;
189
+ expect ( events ) . toStrictEqual ( [ { version, state : missing } ] ) ;
183
190
expect ( installer . installedVersion ) . toBe ( undefined ) ;
184
191
} ) ;
185
192
} ) ;
186
193
187
194
describe ( 'install()' , ( ) => {
188
195
it ( 'downloads a version if necessary' , async ( ) => {
189
196
// setup: version is not downloaded
190
- expect ( installer . state ( version ) ) . toBe ( ' missing' ) ;
197
+ expect ( installer . state ( version ) ) . toBe ( missing ) ;
191
198
expect ( installer . installedVersion ) . toBe ( undefined ) ;
192
199
193
200
const { events } = await doInstall ( installer , version ) ;
194
201
expect ( events ) . toStrictEqual ( [
195
- { version, state : ' downloading' } ,
196
- { version, state : ' downloaded' } ,
197
- { version, state : ' installing' } ,
198
- { version, state : ' installed' } ,
202
+ { version, state : downloading } ,
203
+ { version, state : downloaded } ,
204
+ { version, state : installing } ,
205
+ { version, state : installed } ,
199
206
] ) ;
200
207
} ) ;
201
208
202
209
it ( 'unzips a version if necessary' , async ( ) => {
203
210
// setup: version is downloaded but not installed
204
211
await doDownload ( installer , version ) ;
205
- expect ( installer . state ( version ) ) . toBe ( ' downloaded' ) ;
212
+ expect ( installer . state ( version ) ) . toBe ( downloaded ) ;
206
213
207
214
const { events } = await doInstall ( installer , version ) ;
208
215
expect ( events ) . toStrictEqual ( [
209
- { version, state : ' installing' } ,
210
- { version, state : ' installed' } ,
216
+ { version, state : installing } ,
217
+ { version, state : installed } ,
211
218
] ) ;
212
219
} ) ;
213
220
@@ -224,11 +231,11 @@ describe('Installer', () => {
224
231
const { events } = await doInstall ( installer , version13 ) ;
225
232
226
233
expect ( events ) . toStrictEqual ( [
227
- { version : version13 , state : ' downloading' } ,
228
- { version : version13 , state : ' downloaded' } ,
229
- { version : version13 , state : ' installing' } ,
230
- { version : version12 , state : ' downloaded' } ,
231
- { version : version13 , state : ' installed' } ,
234
+ { version : version13 , state : downloading } ,
235
+ { version : version13 , state : downloaded } ,
236
+ { version : version13 , state : installing } ,
237
+ { version : version12 , state : downloaded } ,
238
+ { version : version13 , state : installed } ,
232
239
] ) ;
233
240
} ) ;
234
241
} ) ;
@@ -248,16 +255,16 @@ describe('Installer', () => {
248
255
describe ( 'state()' , ( ) => {
249
256
it ( "returns 'installed' if the version is installed" , async ( ) => {
250
257
await doInstall ( installer , version ) ;
251
- expect ( installer . state ( version ) ) . toBe ( ' installed' ) ;
258
+ expect ( installer . state ( version ) ) . toBe ( installed ) ;
252
259
} ) ;
253
260
254
261
it ( "returns 'downloaded' if the version is downloaded" , async ( ) => {
255
262
await doDownload ( installer , version ) ;
256
- expect ( installer . state ( version ) ) . toBe ( ' downloaded' ) ;
263
+ expect ( installer . state ( version ) ) . toBe ( downloaded ) ;
257
264
} ) ;
258
265
259
266
it ( "returns 'missing' if the version is not downloaded" , ( ) => {
260
- expect ( installer . state ( version ) ) . toBe ( ' missing' ) ;
267
+ expect ( installer . state ( version ) ) . toBe ( missing ) ;
261
268
} ) ;
262
269
} ) ;
263
270
} ) ;
0 commit comments