1
1
import * as fs from "fs"
2
- import { commit , getPackageJson , version } from "../../src/node/constants"
3
2
import { tmpdir } from "../../test/utils/constants"
4
3
import { loggerModule } from "../utils/helpers"
5
4
@@ -8,12 +7,14 @@ jest.mock("@coder/logger", () => require("../utils/helpers").loggerModule)
8
7
9
8
describe ( "constants" , ( ) => {
10
9
describe ( "getPackageJson" , ( ) => {
10
+ const { getPackageJson } = require ( "../../src/node/constants" )
11
11
afterEach ( ( ) => {
12
12
jest . clearAllMocks ( )
13
13
} )
14
14
15
15
afterAll ( ( ) => {
16
16
jest . restoreAllMocks ( )
17
+ jest . resetModules ( )
17
18
} )
18
19
19
20
it ( "should log a warning if package.json not found" , ( ) => {
@@ -36,20 +37,95 @@ describe("constants", () => {
36
37
} )
37
38
} )
38
39
describe ( "version" , ( ) => {
39
- it ( "should return the package.json version" , ( ) => {
40
- // Source: https://gist.github.com/jhorsman/62eeea161a13b80e39f5249281e17c39#gistcomment-2896416
41
- const validSemVar = new RegExp ( "^(0|[1-9]d*).(0|[1-9]d*).(0|[1-9]d*)" )
42
- const isValidSemVar = validSemVar . test ( version )
43
- expect ( version ) . not . toBe ( null )
44
- expect ( isValidSemVar ) . toBe ( true )
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
+
52
+ afterEach ( ( ) => {
53
+ jest . resetAllMocks ( )
54
+ jest . resetModules ( )
55
+ } )
56
+
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
+ } )
45
65
} )
46
- } )
66
+ describe ( "with package.json.version missing" , ( ) => {
67
+ let mockPackageJson = {
68
+ name : "mock-code-server" ,
69
+ }
70
+ let version = ""
47
71
72
+ beforeEach ( ( ) => {
73
+ jest . mock ( "../../package.json" , ( ) => mockPackageJson , { virtual : true } )
74
+ version = require ( "../../src/node/constants" ) . version
75
+ } )
76
+
77
+ afterEach ( ( ) => {
78
+ jest . resetAllMocks ( )
79
+ jest . resetModules ( )
80
+ } )
81
+
82
+ it ( "should return 'development'" , ( ) => {
83
+ expect ( version ) . toBe ( "development" )
84
+ } )
85
+ } )
86
+ } )
48
87
describe ( "commit" , ( ) => {
49
- it ( "should return 'development' if commit is undefined" , ( ) => {
50
- // In development, the commit is not stored in our package.json
51
- // But when we build code-server and release it, it is
52
- expect ( commit ) . toBe ( "development" )
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
+
105
+ it ( "should return the package.json.commit" , ( ) => {
106
+ // Source: https://gist.github.com/jhorsman/62eeea161a13b80e39f5249281e17c39#gistcomment-2896416
107
+ expect ( commit ) . toBe ( "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" )
108
+ } )
109
+ } )
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
+
121
+ afterEach ( ( ) => {
122
+ jest . resetAllMocks ( )
123
+ jest . resetModules ( )
124
+ } )
125
+
126
+ it ( "should return 'development'" , ( ) => {
127
+ expect ( commit ) . toBe ( "development" )
128
+ } )
53
129
} )
54
130
} )
55
131
} )
0 commit comments