@@ -4,35 +4,42 @@ import * as path from "path";
4
4
import { unzip } from "../../src/unzip" ;
5
5
import { DownloadDetails } from "../../src/emulator/downloadableEmulators" ;
6
6
import { Client } from "../../src/apiv2" ;
7
- const fixturesDir = path . resolve ( __dirname , "dev" ) ;
8
-
9
- const ZIP_FIXTURES_PATH = path . join ( fixturesDir , "zip-files" ) ;
10
- const ZIP_TEMPORARY_PATH = path . join ( ZIP_FIXTURES_PATH , "temp" ) ;
7
+ import { tmpdir } from "os" ;
11
8
12
9
describe ( "unzipEmulators" , ( ) => {
10
+ let tempDir : string ;
11
+
12
+ before ( async ( ) => {
13
+ tempDir = await fs . promises . mkdtemp ( path . join ( tmpdir ( ) , "firebasetest-" ) ) ;
14
+ } ) ;
15
+
16
+ after ( async ( ) => {
17
+ await fs . promises . rmdir ( tempDir , { recursive : true } ) ;
18
+ } ) ;
19
+
13
20
it ( "should unzip a ui emulator zip file" , async ( ) => {
14
21
const [ uiVersion , uiRemoteUrl ] = [
15
22
DownloadDetails . ui . version ,
16
23
DownloadDetails . ui . opts . remoteUrl ,
17
24
] ;
18
25
19
- const uiZipPath = path . join ( ZIP_TEMPORARY_PATH , `ui-v${ uiVersion } .zip` ) ;
26
+ const uiZipPath = path . join ( tempDir , `ui-v${ uiVersion } .zip` ) ;
20
27
21
- await fs . promises . mkdir ( ZIP_TEMPORARY_PATH , { recursive : true } ) ;
28
+ await fs . promises . mkdir ( tempDir , { recursive : true } ) ;
22
29
if ( ! ( await fs . promises . access ( uiZipPath ) . catch ( ( ) => false ) ) ) {
23
30
await downloadFile ( uiRemoteUrl , uiZipPath ) ;
24
31
}
25
32
26
- await unzip ( uiZipPath , path . join ( ZIP_TEMPORARY_PATH , "ui" ) ) ;
33
+ await unzip ( uiZipPath , path . join ( tempDir , "ui" ) ) ;
27
34
28
- const files = await fs . promises . readdir ( ZIP_TEMPORARY_PATH ) ;
35
+ const files = await fs . promises . readdir ( tempDir ) ;
29
36
expect ( files ) . to . include ( "ui" ) ;
30
37
31
- const uiFiles = await fs . promises . readdir ( path . join ( ZIP_TEMPORARY_PATH , "ui" ) ) ;
38
+ const uiFiles = await fs . promises . readdir ( path . join ( tempDir , "ui" ) ) ;
32
39
expect ( uiFiles ) . to . include ( "client" ) ;
33
40
expect ( uiFiles ) . to . include ( "server" ) ;
34
41
35
- const serverFiles = await fs . promises . readdir ( path . join ( ZIP_TEMPORARY_PATH , "ui" , "server" ) ) ;
42
+ const serverFiles = await fs . promises . readdir ( path . join ( tempDir , "ui" , "server" ) ) ;
36
43
expect ( serverFiles ) . to . include ( "server.mjs" ) ;
37
44
} ) . timeout ( 10000 ) ;
38
45
@@ -42,28 +49,28 @@ describe("unzipEmulators", () => {
42
49
DownloadDetails . pubsub . opts . remoteUrl ,
43
50
] ;
44
51
45
- const pubsubZipPath = path . join ( ZIP_TEMPORARY_PATH , `pubsub-emulator-v${ pubsubVersion } .zip` ) ;
52
+ const pubsubZipPath = path . join ( tempDir , `pubsub-emulator-v${ pubsubVersion } .zip` ) ;
46
53
47
54
if ( ! ( await fs . promises . access ( pubsubZipPath ) . catch ( ( ) => false ) ) ) {
48
55
await downloadFile ( pubsubRemoteUrl , pubsubZipPath ) ;
49
56
}
50
57
51
- await unzip ( pubsubZipPath , path . join ( ZIP_TEMPORARY_PATH , "pubsub" ) ) ;
58
+ await unzip ( pubsubZipPath , path . join ( tempDir , "pubsub" ) ) ;
52
59
53
- const files = await fs . promises . readdir ( ZIP_TEMPORARY_PATH ) ;
60
+ const files = await fs . promises . readdir ( tempDir ) ;
54
61
expect ( files ) . to . include ( "pubsub" ) ;
55
62
56
- const pubsubFiles = await fs . promises . readdir ( path . join ( ZIP_TEMPORARY_PATH , "pubsub" ) ) ;
63
+ const pubsubFiles = await fs . promises . readdir ( path . join ( tempDir , "pubsub" ) ) ;
57
64
expect ( pubsubFiles ) . to . include ( "pubsub-emulator" ) ;
58
65
59
66
const pubsubEmulatorFiles = await fs . promises . readdir (
60
- path . join ( ZIP_TEMPORARY_PATH , "pubsub" , "pubsub-emulator" ) ,
67
+ path . join ( tempDir , "pubsub" , "pubsub-emulator" ) ,
61
68
) ;
62
69
expect ( pubsubEmulatorFiles ) . to . include ( "bin" ) ;
63
70
expect ( pubsubEmulatorFiles ) . to . include ( "lib" ) ;
64
71
65
72
const binFiles = await fs . promises . readdir (
66
- path . join ( ZIP_TEMPORARY_PATH , "pubsub" , "pubsub-emulator" , "bin" ) ,
73
+ path . join ( tempDir , "pubsub" , "pubsub-emulator" , "bin" ) ,
67
74
) ;
68
75
expect ( binFiles ) . to . include ( "cloud-pubsub-emulator" ) ;
69
76
} ) . timeout ( 10000 ) ;
0 commit comments