Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ implementation (#4414).
- OpenVSX has been made the default marketplace.
- The last opened folder/workspace is no longer stored separately in the
settings file (we rely on the already-existing query object instead).
- Add `VSCODE_PROXY_URI` env var for use in the terminal and extensions (#1510)

### Deprecated

Expand Down
22 changes: 17 additions & 5 deletions ci/dev/postinstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,30 @@ set -euo pipefail

main() {
cd "$(dirname "$0")/../.."
source ./ci/lib.sh

echo "Installing code-server test dependencies..."
pushd test
echo "Installing dependencies for $PWD"
yarn install
popd

local args=(install)
if [[ ${CI-} ]]; then
args+=(--frozen-lockfile)
fi

cd test
pushd test
echo "Installing dependencies for $PWD"
yarn "${args[@]}"
cd ..
popd

cd vendor
echo "Installing vendor dependencies..."
pushd test/e2e/extensions/test-extension
echo "Installing dependencies for $PWD"
yarn "${args[@]}"
popd

pushd vendor
echo "Installing dependencies for $PWD"

# We install in 'modules' instead of 'node_modules' because VS Code's
# extensions use a webpack config which cannot differentiate between its own
Expand All @@ -33,6 +43,8 @@ main() {

# Finally, run the vendor `postinstall`
yarn run postinstall

popd
}

main "$@"
5 changes: 5 additions & 0 deletions ci/dev/test-e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ main() {

source ./ci/lib.sh

pushd test/e2e/extensions/test-extension
echo "Building test extension"
yarn build
popd

local dir="$PWD"
if [[ ! ${CODE_SERVER_TEST_ENTRY-} ]]; then
echo "Set CODE_SERVER_TEST_ENTRY to test another build of code-server"
Expand Down
1 change: 1 addition & 0 deletions ci/dev/test-unit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ main() {

source ./ci/lib.sh

echo "Building test plugin"
pushd test/unit/node/test-plugin
make -s out/index.js
popd
Expand Down
12 changes: 12 additions & 0 deletions test/e2e/extensions.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { describe, test } from "./baseFixture"

describe("Extensions", true, () => {
// 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 codeServerPage.address()

await codeServerPage.executeCommandViaMenus("code-server: Get proxy URI")

await codeServerPage.page.waitForSelector(`text=${address}/proxy/{{port}}`)
})
})
1 change: 1 addition & 0 deletions test/e2e/extensions/test-extension/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/extension.js
13 changes: 13 additions & 0 deletions test/e2e/extensions/test-extension/extension.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import * as vscode from "vscode"

export function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(
vscode.commands.registerCommand("codeServerTest.proxyUri", () => {
if (process.env.VSCODE_PROXY_URI) {
vscode.window.showInformationMessage(process.env.VSCODE_PROXY_URI)
} else {
vscode.window.showErrorMessage("No proxy URI was set")
}
}),
)
}
29 changes: 29 additions & 0 deletions test/e2e/extensions/test-extension/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "code-server-extension",
"description": "code-server test extension",
"version": "0.0.1",
"publisher": "cdr",
"activationEvents": [
"onCommand:codeServerTest.proxyUri"
],
"engines": {
"vscode": "^1.56.0"
},
"main": "./extension.js",
"contributes": {
"commands": [
{
"command": "codeServerTest.proxyUri",
"title": "Get proxy URI",
"category": "code-server"
}
]
},
"devDependencies": {
"@types/vscode": "^1.56.0",
"typescript": "^4.0.5"
},
"scripts": {
"build": "tsc extension.ts"
}
}
10 changes: 10 additions & 0 deletions test/e2e/extensions/test-extension/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"compilerOptions": {
"target": "es2020",
"module": "commonjs",
"outDir": ".",
"strict": true,
"baseUrl": "./"
},
"include": ["./extension.ts"]
}
13 changes: 13 additions & 0 deletions test/e2e/extensions/test-extension/yarn.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


"@types/vscode@^1.56.0":
version "1.57.0"
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.57.0.tgz#cc648e0573b92f725cd1baf2621f8da9f8bc689f"
integrity sha512-FeznBFtIDCWRluojTsi9c3LLcCHOXP5etQfBK42+ixo1CoEAchkw39tuui9zomjZuKfUVL33KZUDIwHZ/xvOkQ==

typescript@^4.0.5:
version "4.3.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805"
integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==
2 changes: 2 additions & 0 deletions test/e2e/models/CodeServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ export class CodeServer {
path.join(dir, "config.yaml"),
"--user-data-dir",
dir,
"--extensions-dir",
path.join(__dirname, "../extensions"),
// The last argument is the workspace to open.
dir,
],
Expand Down
13 changes: 4 additions & 9 deletions test/e2e/terminal.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,14 @@ import { clean, tmpdir } from "../utils/helpers"
import { describe, expect, test } from "./baseFixture"

describe("Integrated Terminal", true, () => {
// Create a new context with the saved storage state
// so we don't have to logged in
const testFileName = "pipe"
const testString = "new string test from e2e test"

const testName = "integrated-terminal"
test.beforeAll(async () => {
await clean(testName)
})

test("should echo a string to a file", async ({ codeServerPage }) => {
test("should have access to VSCODE_PROXY_URI", async ({ codeServerPage }) => {
const tmpFolderPath = await tmpdir(testName)
const tmpFile = path.join(tmpFolderPath, testFileName)
const tmpFile = path.join(tmpFolderPath, "pipe")

const command = `mkfifo '${tmpFile}' && cat '${tmpFile}'`
const exec = util.promisify(cp.exec)
Expand All @@ -27,12 +22,12 @@ describe("Integrated Terminal", true, () => {
await codeServerPage.focusTerminal()

await codeServerPage.page.waitForLoadState("load")
await codeServerPage.page.keyboard.type(`echo ${testString} > ${tmpFile}`)
await codeServerPage.page.keyboard.type(`printenv VSCODE_PROXY_URI > ${tmpFile}`)
await codeServerPage.page.keyboard.press("Enter")
// It may take a second to process
await codeServerPage.page.waitForTimeout(1000)

const { stdout } = await output
expect(stdout).toMatch(testString)
expect(stdout).toMatch(await codeServerPage.address())
})
})
2 changes: 0 additions & 2 deletions test/playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,10 @@ const config: PlaywrightTestConfig = {
name: "Chromium",
use: { browserName: "chromium" },
},

{
name: "Firefox",
use: { browserName: "firefox" },
},

{
name: "WebKit",
use: { browserName: "webkit" },
Expand Down
2 changes: 1 addition & 1 deletion vendor/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
"postinstall": "./postinstall.sh"
},
"devDependencies": {
"code-oss-dev": "cdr/vscode#69a6ce45fc5b883aa8a950e10b79fd083eb0a7d7"
"code-oss-dev": "cdr/vscode#2227b06ef6e435932c7bd671eb60eecac3f0fe81"
}
}
4 changes: 2 additions & 2 deletions vendor/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -274,9 +274,9 @@ clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"

code-oss-dev@cdr/vscode#69a6ce45fc5b883aa8a950e10b79fd083eb0a7d7:
code-oss-dev@cdr/vscode#2227b06ef6e435932c7bd671eb60eecac3f0fe81:
version "1.63.0"
resolved "https://codeload.github.com/cdr/vscode/tar.gz/69a6ce45fc5b883aa8a950e10b79fd083eb0a7d7"
resolved "https://codeload.github.com/cdr/vscode/tar.gz/2227b06ef6e435932c7bd671eb60eecac3f0fe81"
dependencies:
"@microsoft/applicationinsights-web" "^2.6.4"
"@parcel/watcher" "2.0.3"
Expand Down