1
- import { loggerModule } from "../utils/helpers"
2
-
3
- // jest.mock is hoisted above the imports so we must use `require` here.
4
- jest . mock ( "@coder/logger" , ( ) => require ( "../utils/helpers" ) . loggerModule )
1
+ import { createLoggerMock } from "../utils/helpers"
5
2
6
3
describe ( "constants" , ( ) => {
7
- beforeAll ( ( ) => {
8
- jest . clearAllMocks ( )
9
- jest . resetModules ( )
10
- } )
4
+ let constants : typeof import ( "../../src/node/constants" )
5
+
11
6
describe ( "with package.json defined" , ( ) => {
12
- const { getPackageJson } = require ( "../../src/node/constants" )
13
- let mockPackageJson = {
7
+ const loggerModule = createLoggerMock ( )
8
+ const mockPackageJson = {
14
9
name : "mock-code-server" ,
15
10
description : "Run VS Code on a remote server." ,
16
11
repository : "https://github.com/cdr/code-server" ,
17
12
version : "1.0.0" ,
18
13
commit : "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" ,
19
14
}
20
- let version = ""
21
- let commit = ""
22
15
23
- beforeEach ( ( ) => {
16
+ beforeAll ( ( ) => {
17
+ jest . mock ( "@coder/logger" , ( ) => loggerModule )
24
18
jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
25
- commit = require ( "../../src/node/constants" ) . commit
26
- version = require ( "../../src/node/constants" ) . version
19
+ constants = require ( "../../src/node/constants" )
27
20
} )
28
21
29
22
afterAll ( ( ) => {
@@ -32,18 +25,18 @@ describe("constants", () => {
32
25
} )
33
26
34
27
it ( "should provide the commit" , ( ) => {
35
- expect ( commit ) . toBe ( "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" )
28
+ expect ( constants . commit ) . toBe ( mockPackageJson . commit )
36
29
} )
37
30
38
31
it ( "should return the package.json version" , ( ) => {
39
- expect ( version ) . toBe ( mockPackageJson . version )
32
+ expect ( constants . version ) . toBe ( mockPackageJson . version )
40
33
} )
41
34
42
35
describe ( "getPackageJson" , ( ) => {
43
36
it ( "should log a warning if package.json not found" , ( ) => {
44
37
const expectedErrorMessage = "Cannot find module './package.json' from 'src/node/constants.ts'"
45
38
46
- getPackageJson ( "./package.json" )
39
+ constants . getPackageJson ( "./package.json" )
47
40
48
41
expect ( loggerModule . logger . warn ) . toHaveBeenCalled ( )
49
42
expect ( loggerModule . logger . warn ) . toHaveBeenCalledWith ( expectedErrorMessage )
@@ -52,38 +45,32 @@ describe("constants", () => {
52
45
it ( "should find the package.json" , ( ) => {
53
46
// the function calls require from src/node/constants
54
47
// so to get the root package.json we need to use ../../
55
- const packageJson = getPackageJson ( "../../package.json" )
56
- expect ( Object . keys ( packageJson ) . length ) . toBeGreaterThan ( 0 )
57
- expect ( packageJson . name ) . toBe ( "mock-code-server" )
58
- expect ( packageJson . description ) . toBe ( "Run VS Code on a remote server." )
59
- expect ( packageJson . repository ) . toBe ( "https://github.com/cdr/code-server" )
48
+ const packageJson = constants . getPackageJson ( "../../package.json" )
49
+ expect ( packageJson ) . toStrictEqual ( mockPackageJson )
60
50
} )
61
51
} )
62
52
} )
63
53
64
54
describe ( "with incomplete package.json" , ( ) => {
65
- let mockPackageJson = {
55
+ const mockPackageJson = {
66
56
name : "mock-code-server" ,
67
57
}
68
- let version = ""
69
- let commit = ""
70
58
71
- beforeEach ( ( ) => {
59
+ beforeAll ( ( ) => {
72
60
jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
73
- version = require ( "../../src/node/constants" ) . version
74
- commit = require ( "../../src/node/constants" ) . commit
61
+ constants = require ( "../../src/node/constants" )
75
62
} )
76
63
77
- afterEach ( ( ) => {
64
+ afterAll ( ( ) => {
78
65
jest . clearAllMocks ( )
79
66
jest . resetModules ( )
80
67
} )
81
68
82
69
it ( "version should return 'development'" , ( ) => {
83
- expect ( version ) . toBe ( "development" )
70
+ expect ( constants . version ) . toBe ( "development" )
84
71
} )
85
72
it ( "commit should return 'development'" , ( ) => {
86
- expect ( commit ) . toBe ( "development" )
73
+ expect ( constants . commit ) . toBe ( "development" )
87
74
} )
88
75
} )
89
76
} )
0 commit comments