f178f0400b
* docs: update maintaining * chore(e2e): add maxFailures to playwright * fix(ci): skip submodule in e2e job We don't need the submodules for the e2e job. This will speed up the checkout step. * feat(ci): add test-e2e-proxy job This adds a new job to CI to run our tests behind Caddy and simulate code-server running against a reverse-proxy. * refactor: make e2e work with reverse proxy This refactors the e2e test in a couple ways: - remove setting cookie in localStorage (instead we pass --auth none) - refactor address() method to account for reverse proxy logic * Update test/e2e/models/CodeServer.ts * Update test/playwright.config.ts * Update test/utils/constants.ts Co-authored-by: Asher <ash@coder.com> * Update test/utils/helpers.ts Co-authored-by: Asher <ash@coder.com> Co-authored-by: Asher <ash@coder.com>
39 lines
1.8 KiB
TypeScript
39 lines
1.8 KiB
TypeScript
import { test as base } from "@playwright/test"
|
|
import { describe, expect, test } from "./baseFixture"
|
|
|
|
if (process.env.GITHUB_TOKEN) {
|
|
describe("GitHub token", [], {}, () => {
|
|
test("should be logged in to pull requests extension", async ({ codeServerPage }) => {
|
|
await codeServerPage.exec("git init")
|
|
await codeServerPage.exec("git remote add origin https://github.com/coder/code-server")
|
|
await codeServerPage.installExtension("GitHub.vscode-pull-request-github")
|
|
await codeServerPage.executeCommandViaMenus("View: Show Github")
|
|
await codeServerPage.page.click("text=Sign in")
|
|
await codeServerPage.page.click("text=Allow")
|
|
// It should ask to select an account, one of which will be the one we
|
|
// pre-injected.
|
|
expect(await codeServerPage.page.isVisible("text=Select an account")).toBe(false)
|
|
})
|
|
})
|
|
|
|
describe("No GitHub token", [], { GITHUB_TOKEN: "" }, () => {
|
|
test("should not be logged in to pull requests extension", async ({ codeServerPage }) => {
|
|
await codeServerPage.exec("git init")
|
|
await codeServerPage.exec("git remote add origin https://github.com/coder/code-server")
|
|
await codeServerPage.installExtension("GitHub.vscode-pull-request-github")
|
|
await codeServerPage.executeCommandViaMenus("View: Show Github")
|
|
await codeServerPage.page.click("text=Sign in")
|
|
await codeServerPage.page.click("text=Allow")
|
|
// Since there is no account it will ask directly for the token (because
|
|
// we are on localhost; otherwise it would initiate the oauth flow).
|
|
expect(await codeServerPage.page.isVisible("text=GitHub Personal Access Token")).toBe(false)
|
|
})
|
|
})
|
|
} else {
|
|
base.describe("GitHub token", () => {
|
|
base.skip("skipped because GITHUB_TOKEN is not set", () => {
|
|
// Playwright will not show this without a function.
|
|
})
|
|
})
|
|
}
|