@@ -6,126 +6,86 @@ import { loggerModule } from "../utils/helpers"
6
6
jest . mock ( "@coder/logger" , ( ) => require ( "../utils/helpers" ) . loggerModule )
7
7
8
8
describe ( "constants" , ( ) => {
9
- describe ( "getPackageJson" , ( ) => {
9
+ beforeAll ( ( ) => {
10
+ jest . clearAllMocks ( )
11
+ jest . resetModules ( )
12
+ } )
13
+ describe ( "with package.json defined" , ( ) => {
10
14
const { getPackageJson } = require ( "../../src/node/constants" )
11
- afterEach ( ( ) => {
12
- jest . clearAllMocks ( )
15
+ let mockPackageJson = {
16
+ name : "mock-code-server" ,
17
+ description : "Run VS Code on a remote server." ,
18
+ repository : "https://github.com/cdr/code-server" ,
19
+ version : "1.0.0" ,
20
+ commit : "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" ,
21
+ }
22
+ let version = ""
23
+ let commit = ""
24
+
25
+ beforeEach ( ( ) => {
26
+ jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
27
+ commit = require ( "../../src/node/constants" ) . commit
28
+ version = require ( "../../src/node/constants" ) . version
13
29
} )
14
30
15
31
afterAll ( ( ) => {
16
- jest . restoreAllMocks ( )
32
+ jest . clearAllMocks ( )
17
33
jest . resetModules ( )
18
34
} )
19
35
20
- it ( "should log a warning if package.json not found" , ( ) => {
21
- const expectedErrorMessage = "Cannot find module './package.json' from 'src/node/constants.ts'"
22
-
23
- getPackageJson ( "./package.json" )
24
-
25
- expect ( loggerModule . logger . warn ) . toHaveBeenCalled ( )
26
- expect ( loggerModule . logger . warn ) . toHaveBeenCalledWith ( expectedErrorMessage )
36
+ it ( "should provide the commit" , ( ) => {
37
+ expect ( commit ) . toBe ( "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" )
27
38
} )
28
39
29
- it ( "should find the package.json" , ( ) => {
30
- // the function calls require from src/node/constants
31
- // so to get the root package.json we need to use ../../
32
- const packageJson = getPackageJson ( "../../package.json" )
33
- expect ( Object . keys ( packageJson ) . length ) . toBeGreaterThan ( 0 )
34
- expect ( packageJson . name ) . toBe ( "code-server" )
35
- expect ( packageJson . description ) . toBe ( "Run VS Code on a remote server." )
36
- expect ( packageJson . repository ) . toBe ( "https://github.com/cdr/code-server" )
40
+ it ( "should return the package.json version" , ( ) => {
41
+ expect ( version ) . toBe ( mockPackageJson . version )
37
42
} )
38
- } )
39
- describe ( "version" , ( ) => {
40
- describe ( "with package.json.version defined" , ( ) => {
41
- let mockPackageJson = {
42
- name : "mock-code-server" ,
43
- version : "1.0.0" ,
44
- }
45
- let version = ""
46
-
47
- beforeEach ( ( ) => {
48
- jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
49
- version = require ( "../../src/node/constants" ) . version
50
- } )
51
43
52
- afterEach ( ( ) => {
53
- jest . resetAllMocks ( )
54
- jest . resetModules ( )
55
- } )
44
+ describe ( "getPackageJson" , ( ) => {
45
+ it ( "should log a warning if package.json not found" , ( ) => {
46
+ const expectedErrorMessage = "Cannot find module './package.json' from 'src/node/constants.ts'"
56
47
57
- it ( "should return the package.json version" , ( ) => {
58
- // Source: https://gist.github.com/jhorsman/62eeea161a13b80e39f5249281e17c39#gistcomment-2896416
59
- const validSemVar = new RegExp ( "^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)" )
60
- const isValidSemVar = validSemVar . test ( version )
61
- expect ( version ) . not . toBe ( null )
62
- expect ( isValidSemVar ) . toBe ( true )
63
- expect ( version ) . toBe ( "1.0.0" )
64
- } )
65
- } )
66
- describe ( "with package.json.version missing" , ( ) => {
67
- let mockPackageJson = {
68
- name : "mock-code-server" ,
69
- }
70
- let version = ""
71
-
72
- beforeEach ( ( ) => {
73
- jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
74
- version = require ( "../../src/node/constants" ) . version
75
- } )
48
+ getPackageJson ( "./package.json" )
76
49
77
- afterEach ( ( ) => {
78
- jest . resetAllMocks ( )
79
- jest . resetModules ( )
50
+ expect ( loggerModule . logger . warn ) . toHaveBeenCalled ( )
51
+ expect ( loggerModule . logger . warn ) . toHaveBeenCalledWith ( expectedErrorMessage )
80
52
} )
81
53
82
- it ( "should return 'development'" , ( ) => {
83
- expect ( version ) . toBe ( "development" )
54
+ it ( "should find the package.json" , ( ) => {
55
+ // the function calls require from src/node/constants
56
+ // so to get the root package.json we need to use ../../
57
+ const packageJson = getPackageJson ( "../../package.json" )
58
+ expect ( Object . keys ( packageJson ) . length ) . toBeGreaterThan ( 0 )
59
+ expect ( packageJson . name ) . toBe ( "mock-code-server" )
60
+ expect ( packageJson . description ) . toBe ( "Run VS Code on a remote server." )
61
+ expect ( packageJson . repository ) . toBe ( "https://github.com/cdr/code-server" )
84
62
} )
85
63
} )
86
64
} )
87
- describe ( "commit" , ( ) => {
88
- describe ( "with package.json.commit defined" , ( ) => {
89
- let mockPackageJson = {
90
- name : "mock-code-server" ,
91
- commit : "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" ,
92
- }
93
- let commit = ""
94
-
95
- beforeEach ( ( ) => {
96
- jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
97
- commit = require ( "../../src/node/constants" ) . commit
98
- } )
99
-
100
- afterEach ( ( ) => {
101
- jest . resetAllMocks ( )
102
- jest . resetModules ( )
103
- } )
104
65
105
- it ( "should return the package.json.commit" , ( ) => {
106
- // Source: https://gist.github.com/jhorsman/62eeea161a13b80e39f5249281e17c39#gistcomment-2896416
107
- expect ( commit ) . toBe ( "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" )
108
- } )
66
+ describe ( "with incomplete package.json" , ( ) => {
67
+ let mockPackageJson = {
68
+ name : "mock-code-server" ,
69
+ }
70
+ let version = ""
71
+ let commit = ""
72
+
73
+ beforeEach ( ( ) => {
74
+ jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
75
+ version = require ( "../../src/node/constants" ) . version
76
+ commit = require ( "../../src/node/constants" ) . commit
109
77
} )
110
- describe ( "with package.json.commit missing" , ( ) => {
111
- let mockPackageJson = {
112
- name : "mock-code-server" ,
113
- }
114
- let commit = ""
115
-
116
- beforeEach ( ( ) => {
117
- jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
118
- commit = require ( "../../src/node/constants" ) . commit
119
- } )
120
78
121
- afterEach ( ( ) => {
122
- jest . resetAllMocks ( )
123
- jest . resetModules ( )
124
- } )
79
+ afterEach ( ( ) => {
80
+ jest . clearAllMocks ( )
81
+ jest . resetModules ( )
82
+ } )
125
83
126
- it ( "should return 'development'" , ( ) => {
127
- expect ( commit ) . toBe ( "development" )
128
- } )
84
+ it ( "version should return 'development'" , ( ) => {
85
+ expect ( version ) . toBe ( "development" )
86
+ } )
87
+ it ( "commit should return 'development'" , ( ) => {
88
+ expect ( commit ) . toBe ( "development" )
129
89
} )
130
90
} )
131
91
} )
0 commit comments