Run each e2e test in a new workspace
The workspaces also have settings to prevent the welcome page from appearing.
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
export const CODE_SERVER_ADDRESS = process.env.CODE_SERVER_ADDRESS || "http://localhost:8080"
|
||||
export const PASSWORD = process.env.PASSWORD || "e45432jklfdsab"
|
||||
export const storageState = JSON.parse(process.env.STORAGE || "{}")
|
||||
export const workspaceDir = "workspaces"
|
||||
|
@ -1,15 +1,20 @@
|
||||
// This setup runs before our e2e tests
|
||||
// so that it authenticates us into code-server
|
||||
// ensuring that we're logged in before we run any tests
|
||||
import { chromium } from "playwright"
|
||||
import { hash } from "../../src/node/util"
|
||||
import { PASSWORD } from "./constants"
|
||||
import { PASSWORD, workspaceDir } from "./constants"
|
||||
import { clean } from "./helpers"
|
||||
import * as wtfnode from "./wtfnode"
|
||||
|
||||
/**
|
||||
* Perform workspace cleanup and authenticate. This should be set up to run
|
||||
* before our tests execute.
|
||||
*/
|
||||
export default async function () {
|
||||
console.log("\n🚨 Running Global Setup for Playwright End-to-End Tests")
|
||||
console.log(" Please hang tight...")
|
||||
|
||||
// Cleanup workspaces from previous tests.
|
||||
await clean(workspaceDir)
|
||||
|
||||
const cookieToStore = {
|
||||
sameSite: "Lax" as const,
|
||||
name: "key",
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as fs from "fs"
|
||||
import { promises as fs } from "fs"
|
||||
import * as os from "os"
|
||||
import * as path from "path"
|
||||
|
||||
@ -20,13 +20,20 @@ export function createLoggerMock() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a uniquely named temporary directory.
|
||||
*
|
||||
* These directories are placed under a single temporary code-server directory.
|
||||
* Clean up directories left by a test. It is recommended to do this when a test
|
||||
* starts to avoid potentially accumulating infinite test directories.
|
||||
*/
|
||||
export async function clean(testName: string): Promise<void> {
|
||||
const dir = path.join(os.tmpdir(), `code-server/tests/${testName}`)
|
||||
await fs.rm(dir, { recursive: true })
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a uniquely named temporary directory for a test.
|
||||
*/
|
||||
export async function tmpdir(testName: string): Promise<string> {
|
||||
const dir = path.join(os.tmpdir(), "code-server/tests")
|
||||
await fs.promises.mkdir(dir, { recursive: true })
|
||||
const dir = path.join(os.tmpdir(), `code-server/tests/${testName}`)
|
||||
await fs.mkdir(dir, { recursive: true })
|
||||
|
||||
return await fs.promises.mkdtemp(path.join(dir, `${testName}-`), { encoding: "utf8" })
|
||||
return await fs.mkdtemp(path.join(dir, `${testName}-`), { encoding: "utf8" })
|
||||
}
|
||||
|
Reference in New Issue
Block a user