import { test as base } from "@playwright/test" import * as path from "path" import { getMaybeProxiedCodeServer } from "../utils/helpers" import { describe, test, expect } from "./baseFixture" function runTestExtensionTests() { // This will only work if the test extension is loaded into code-server. test("should have access to VSCODE_PROXY_URI", async ({ codeServerPage }) => { const address = await getMaybeProxiedCodeServer(codeServerPage) await codeServerPage.waitForTestExtensionLoaded() await codeServerPage.executeCommandViaMenus("code-server: Get proxy URI") await codeServerPage.page.waitForSelector("text=proxyUri", { timeout: 3000 }) const text = await codeServerPage.page.locator("text=proxyUri").first().textContent() // Remove end slash in address const normalizedAddress = address.replace(/\/+$/, "") expect(text).toBe(`Info: proxyUri: ${normalizedAddress}/proxy/{{port}}`) }) } const flags = ["--disable-workspace-trust", "--extensions-dir", path.join(__dirname, "./extensions")] describe("Extensions", flags, {}, () => { runTestExtensionTests() }) if (process.env.USE_PROXY !== "1") { describe("Extensions with --cert", [...flags, "--cert"], {}, () => { runTestExtensionTests() }) } else { base.describe("Extensions with --cert", () => { base.skip("skipped because USE_PROXY is set", () => { // Playwright will not show this without a function. }) }) }