@@ -6,126 +6,86 @@ import { loggerModule } from "../utils/helpers"
66jest . mock ( "@coder/logger" , ( ) => require ( "../utils/helpers" ) . loggerModule )
77
88describe ( "constants" , ( ) => {
9- describe ( "getPackageJson" , ( ) => {
9+ beforeAll ( ( ) => {
10+ jest . clearAllMocks ( )
11+ jest . resetModules ( )
12+ } )
13+ describe ( "with package.json defined" , ( ) => {
1014 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
1329 } )
1430
1531 afterAll ( ( ) => {
16- jest . restoreAllMocks ( )
32+ jest . clearAllMocks ( )
1733 jest . resetModules ( )
1834 } )
1935
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" )
2738 } )
2839
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 )
3742 } )
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- } )
5143
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'"
5647
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" )
7649
77- afterEach ( ( ) => {
78- jest . resetAllMocks ( )
79- jest . resetModules ( )
50+ expect ( loggerModule . logger . warn ) . toHaveBeenCalled ( )
51+ expect ( loggerModule . logger . warn ) . toHaveBeenCalledWith ( expectedErrorMessage )
8052 } )
8153
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" )
8462 } )
8563 } )
8664 } )
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- } )
10465
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
10977 } )
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- } )
12078
121- afterEach ( ( ) => {
122- jest . resetAllMocks ( )
123- jest . resetModules ( )
124- } )
79+ afterEach ( ( ) => {
80+ jest . clearAllMocks ( )
81+ jest . resetModules ( )
82+ } )
12583
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" )
12989 } )
13090 } )
13191} )
0 commit comments