c4c480a068
* Implement last opened functionality Fixes https://github.com/cdr/code-server/issues/4619 * Fix test temp dirs not being cleaned up * Mock logger everywhere This suppresses all the error and debug output we generate which makes it hard to actually find which test has failed. It also gives us a standard way to test logging for the few places we do that. * Use separate data directories for unit test instances Exactly as we do for the e2e tests. * Add integration tests for vscode route * Make settings use --user-data-dir Without this test instances step on each other feet and they also clobber your own non-test settings. * Make redirects consistent They will preserve the trailing slash if there is one. * Remove compilation check If you do a regular non-watch build there are no compilation stats so this bricks VS Code in CI when running the unit tests. I am not sure how best to fix this for the case where you have a build that has not been packaged yet so I just removed it for now and added a message to check if VS Code is compiling when in dev mode. * Update code-server update endpoint name
59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import { promises as fs } from "fs"
|
|
import { clean, getAvailablePort, tmpdir, useEnv } from "../../test/utils/helpers"
|
|
|
|
/**
|
|
* This file is for testing test helpers (not core code).
|
|
*/
|
|
describe("test helpers", () => {
|
|
const testName = "temp-dir"
|
|
beforeAll(async () => {
|
|
await clean(testName)
|
|
})
|
|
|
|
it("should return a temp directory", async () => {
|
|
const pathToTempDir = await tmpdir(testName)
|
|
expect(pathToTempDir).toContain(testName)
|
|
expect(fs.access(pathToTempDir)).resolves.toStrictEqual(undefined)
|
|
})
|
|
})
|
|
|
|
describe("useEnv", () => {
|
|
beforeAll(() => {
|
|
jest.resetModules()
|
|
process.env.TEST_USE_ENV = "test environment variable"
|
|
})
|
|
afterAll(() => {
|
|
delete process.env.TEST_USE_ENV
|
|
})
|
|
it("should set and reset the env var", () => {
|
|
const envKey = "TEST_ENV_VAR"
|
|
const [setValue, resetValue] = useEnv(envKey)
|
|
setValue("hello-world")
|
|
expect(process.env[envKey]).toEqual("hello-world")
|
|
resetValue()
|
|
expect(process.env[envKey]).toEqual(undefined)
|
|
})
|
|
it("should set and reset the env var where a value was already set", () => {
|
|
const envKey = "TEST_USE_ENV"
|
|
expect(process.env[envKey]).toEqual("test environment variable")
|
|
const [setValue, resetValue] = useEnv(envKey)
|
|
setValue("hello there")
|
|
expect(process.env[envKey]).toEqual("hello there")
|
|
resetValue()
|
|
expect(process.env[envKey]).toEqual("test environment variable")
|
|
})
|
|
})
|
|
|
|
describe("getAvailablePort", () => {
|
|
it("should return a valid port", async () => {
|
|
const port = await getAvailablePort()
|
|
expect(port).toBeGreaterThan(0)
|
|
expect(port).toBeLessThanOrEqual(65535)
|
|
})
|
|
it("should return different ports for different calls", async () => {
|
|
const portOne = await getAvailablePort()
|
|
const portTwo = await getAvailablePort()
|
|
expect(portOne).not.toEqual(portTwo)
|
|
})
|
|
})
|