e8443e2602
It errors that jest is not defined so put it behind a function instead of immediately creating the mock (this is probably a better pattern anyway). The constant tests had to be reworked a little. Since the logger mock is hoisted it runs before createLoggerMock is imported. I moved it into a beforeAll which means the require call also needed to be moved there (since we need to mock the logger before requiring the constants or it'll pull the non-mocked logger). This means getPackageJson needs to be a let and assigned afterward. To avoid having to define a type for getPackageJson I just added a let var set to the type of the imported constants file and modified the other areas to use the same paradigm. I also replaced some hardcoded strings with the mocked package.json object.
33 lines
760 B
TypeScript
33 lines
760 B
TypeScript
import * as fs from "fs"
|
|
import * as os from "os"
|
|
import * as path from "path"
|
|
|
|
/**
|
|
* Return a mock of @coder/logger.
|
|
*/
|
|
export function createLoggerMock() {
|
|
return {
|
|
field: jest.fn(),
|
|
level: 2,
|
|
logger: {
|
|
debug: jest.fn(),
|
|
error: jest.fn(),
|
|
info: jest.fn(),
|
|
trace: jest.fn(),
|
|
warn: jest.fn(),
|
|
},
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Create a uniquely named temporary directory.
|
|
*
|
|
* These directories are placed under a single temporary code-server directory.
|
|
*/
|
|
export async function tmpdir(testName: string): Promise<string> {
|
|
const dir = path.join(os.tmpdir(), "code-server/tests")
|
|
await fs.promises.mkdir(dir, { recursive: true })
|
|
|
|
return await fs.promises.mkdtemp(path.join(dir, `${testName}-`), { encoding: "utf8" })
|
|
}
|