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"
52
63describe ( "constants" , ( ) => {
7- beforeAll ( ( ) => {
8- jest . clearAllMocks ( )
9- jest . resetModules ( )
10- } )
4+ let constants : typeof import ( "../../src/node/constants" )
5+
116 describe ( "with package.json defined" , ( ) => {
12- const { getPackageJson } = require ( "../../src/node/constants" )
13- let mockPackageJson = {
7+ const loggerModule = createLoggerMock ( )
8+ const mockPackageJson = {
149 name : "mock-code-server" ,
1510 description : "Run VS Code on a remote server." ,
1611 repository : "https://github.com/cdr/code-server" ,
1712 version : "1.0.0" ,
1813 commit : "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" ,
1914 }
20- let version = ""
21- let commit = ""
2215
23- beforeEach ( ( ) => {
16+ beforeAll ( ( ) => {
17+ jest . mock ( "@coder/logger" , ( ) => loggerModule )
2418 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" )
2720 } )
2821
2922 afterAll ( ( ) => {
@@ -32,18 +25,18 @@ describe("constants", () => {
3225 } )
3326
3427 it ( "should provide the commit" , ( ) => {
35- expect ( commit ) . toBe ( "f6b2be2838f4afb217c2fd8f03eafedd8d55ef9b" )
28+ expect ( constants . commit ) . toBe ( mockPackageJson . commit )
3629 } )
3730
3831 it ( "should return the package.json version" , ( ) => {
39- expect ( version ) . toBe ( mockPackageJson . version )
32+ expect ( constants . version ) . toBe ( mockPackageJson . version )
4033 } )
4134
4235 describe ( "getPackageJson" , ( ) => {
4336 it ( "should log a warning if package.json not found" , ( ) => {
4437 const expectedErrorMessage = "Cannot find module './package.json' from 'src/node/constants.ts'"
4538
46- getPackageJson ( "./package.json" )
39+ constants . getPackageJson ( "./package.json" )
4740
4841 expect ( loggerModule . logger . warn ) . toHaveBeenCalled ( )
4942 expect ( loggerModule . logger . warn ) . toHaveBeenCalledWith ( expectedErrorMessage )
@@ -52,38 +45,32 @@ describe("constants", () => {
5245 it ( "should find the package.json" , ( ) => {
5346 // the function calls require from src/node/constants
5447 // 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 )
6050 } )
6151 } )
6252 } )
6353
6454 describe ( "with incomplete package.json" , ( ) => {
65- let mockPackageJson = {
55+ const mockPackageJson = {
6656 name : "mock-code-server" ,
6757 }
68- let version = ""
69- let commit = ""
7058
71- beforeEach ( ( ) => {
59+ beforeAll ( ( ) => {
7260 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" )
7562 } )
7663
77- afterEach ( ( ) => {
64+ afterAll ( ( ) => {
7865 jest . clearAllMocks ( )
7966 jest . resetModules ( )
8067 } )
8168
8269 it ( "version should return 'development'" , ( ) => {
83- expect ( version ) . toBe ( "development" )
70+ expect ( constants . version ) . toBe ( "development" )
8471 } )
8572 it ( "commit should return 'development'" , ( ) => {
86- expect ( commit ) . toBe ( "development" )
73+ expect ( constants . commit ) . toBe ( "development" )
8774 } )
8875 } )
8976} )
0 commit comments