From a15ce70893cd8825612b1be97918673ac322559d Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Mon, 29 Aug 2022 11:07:57 -0700 Subject: [PATCH 1/6] feat(e2e): add language extension to setup This adds a slimmed-down version of the Spanish Language Pack and also adds a `languagepacks.json` to the e2e `workspaceDir` which allows use to run a test suite passing the `--locale es` flags to simulate a different display language. --- .../package.json | 47 +++++++++++++++++++ .../translations/main.i18n.json | 24 ++++++++++ test/e2e/models/CodeServer.ts | 7 +++ 3 files changed, 78 insertions(+) create mode 100644 test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/package.json create mode 100644 test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json diff --git a/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/package.json b/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/package.json new file mode 100644 index 000000000000..543a52e0781e --- /dev/null +++ b/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/package.json @@ -0,0 +1,47 @@ +{ + "name": "vscode-language-pack-es", + "displayName": "Spanish Language Pack for Visual Studio Code", + "description": "Language pack extension for Spanish", + "version": "1.70.0", + "publisher": "MS-CEINTL", + "repository": { + "type": "git", + "url": "https://github.com/Microsoft/vscode-loc" + }, + "license": "SEE MIT LICENSE IN LICENSE.md", + "engines": { + "vscode": "^1.70.0" + }, + "icon": "languagepack.png", + "categories": [ + "Language Packs" + ], + "contributes": { + "localizations": [ + { + "languageId": "es", + "languageName": "Spanish", + "localizedLanguageName": "español", + "translations": [ + { + "id": "vscode", + "path": "./translations/main.i18n.json" + } + ] + } + ] + }, + "scripts": { + "update": "cd ../vscode && npm run update-localization-extension es" + }, + "__metadata": { + "id": "47e020a1-33db-4cc0-a1b4-42f97781749a", + "publisherId": "0b0882c3-aee3-4d7c-b5f9-872f9be0a115", + "publisherDisplayName": null, + "targetPlatform": "undefined", + "isApplicationScoped": true, + "updated": true, + "isPreReleaseVersion": false, + "preRelease": false + } +} diff --git a/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json b/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json new file mode 100644 index 000000000000..b1c064697a61 --- /dev/null +++ b/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json @@ -0,0 +1,24 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "version": "1.0.0", + "contents": { + "vs/base/browser/ui/actionbar/actionViewItems": { + "titleLabel": "{0} ({1})" + }, + "vs/workbench/contrib/files/browser/explorerViewlet": { + "explore": "Explorador" + }, + "vs/workbench/contrib/files/browser/views/explorerDecorationsProvider": { + "label": "Explorador" + }, + "vs/workbench/contrib/preferences/browser/settingsLayout": { + "fileExplorer": "Explorador" + } + } +} diff --git a/test/e2e/models/CodeServer.ts b/test/e2e/models/CodeServer.ts index d5c00b96e6a7..c5e86bfddb88 100644 --- a/test/e2e/models/CodeServer.ts +++ b/test/e2e/models/CodeServer.ts @@ -88,6 +88,13 @@ export class CodeServer { }), "utf8", ) + + const extensionsDir = path.join(__dirname, "../extensions") + + await fs.writeFile( + path.join(dir, "languagepacks.json"), + `{"es":{"hash":"8d919a946475223861fa0c62665a4c50","extensions":[{"extensionIdentifier":{"id":"ms-ceintl.vscode-language-pack-es","uuid":"47e020a1-33db-4cc0-a1b4-42f97781749a"},"version":"1.70.0"}],"translations":{"vscode":"${extensionsDir}/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json"},"label":"español"}}`, + ) return dir } From 4452b71b00e8ffaed7af6fcb3d2c22b1c6fb761e Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Mon, 29 Aug 2022 11:09:31 -0700 Subject: [PATCH 2/6] feat: add e2e test for display language patch This tests loading code-server in Spanish using the `--locale` flag. --- test/e2e/displayLang.test.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 test/e2e/displayLang.test.ts diff --git a/test/e2e/displayLang.test.ts b/test/e2e/displayLang.test.ts new file mode 100644 index 000000000000..d440d8a95449 --- /dev/null +++ b/test/e2e/displayLang.test.ts @@ -0,0 +1,14 @@ +import * as path from "path" +import { describe, test, expect } from "./baseFixture" + +// Given a code-server environment with Spanish Language Pack extension installed +// and a languagepacks.json in the data-dir +describe("--locale es", ["--extensions-dir", path.join(__dirname, "./extensions"), "--locale", "es"], {}, () => { + test("should load code-server in Spanish", async ({ codeServerPage }) => { + // When + const visible = await codeServerPage.page.isVisible("text=Explorador") + + // Then + expect(visible).toBe(true) + }) +}) From 612848ee2b3a9e550b899bb1b2d4932e8ed1abb2 Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Wed, 31 Aug 2022 09:59:43 -0700 Subject: [PATCH 3/6] fixup!: use JSON.stringify for readability --- test/e2e/models/CodeServer.ts | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/test/e2e/models/CodeServer.ts b/test/e2e/models/CodeServer.ts index c5e86bfddb88..335095e55389 100644 --- a/test/e2e/models/CodeServer.ts +++ b/test/e2e/models/CodeServer.ts @@ -90,11 +90,26 @@ export class CodeServer { ) const extensionsDir = path.join(__dirname, "../extensions") + const languagepacksContent = { + es: { + hash: "8d919a946475223861fa0c62665a4c50", + extensions: [ + { + extensionIdentifier: { + id: "ms-ceintl.vscode-language-pack-es", + uuid: "47e020a1-33db-4cc0-a1b4-42f97781749a", + }, + version: "1.70.0", + }, + ], + translations: { + vscode: `${extensionsDir}/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json`, + }, + label: "español", + }, + } - await fs.writeFile( - path.join(dir, "languagepacks.json"), - `{"es":{"hash":"8d919a946475223861fa0c62665a4c50","extensions":[{"extensionIdentifier":{"id":"ms-ceintl.vscode-language-pack-es","uuid":"47e020a1-33db-4cc0-a1b4-42f97781749a"},"version":"1.70.0"}],"translations":{"vscode":"${extensionsDir}/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json"},"label":"español"}}`, - ) + await fs.writeFile(path.join(dir, "languagepacks.json"), JSON.stringify(languagepacksContent)) return dir } From ec90d07c62f1d051af1a3ea96dee1b08944591ef Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Wed, 31 Aug 2022 10:01:20 -0700 Subject: [PATCH 4/6] fixup!: add comment about langaugepacks temp fix --- test/e2e/models/CodeServer.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/e2e/models/CodeServer.ts b/test/e2e/models/CodeServer.ts index 335095e55389..5e5806670552 100644 --- a/test/e2e/models/CodeServer.ts +++ b/test/e2e/models/CodeServer.ts @@ -109,6 +109,8 @@ export class CodeServer { }, } + // NOTE@jsjoeio - code-server should automatically generate the languagepacks.json for + // using different display languages. This is a temporary workaround until we fix that. await fs.writeFile(path.join(dir, "languagepacks.json"), JSON.stringify(languagepacksContent)) return dir } From d3435e812d885f5e9a60c77108a7d5d85abc5440 Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Wed, 31 Aug 2022 10:03:38 -0700 Subject: [PATCH 5/6] fixup!: slim down translations --- .../translations/main.i18n.json | 9 --------- 1 file changed, 9 deletions(-) diff --git a/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json b/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json index b1c064697a61..e0f43689c75b 100644 --- a/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json +++ b/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/translations/main.i18n.json @@ -8,17 +8,8 @@ ], "version": "1.0.0", "contents": { - "vs/base/browser/ui/actionbar/actionViewItems": { - "titleLabel": "{0} ({1})" - }, "vs/workbench/contrib/files/browser/explorerViewlet": { "explore": "Explorador" - }, - "vs/workbench/contrib/files/browser/views/explorerDecorationsProvider": { - "label": "Explorador" - }, - "vs/workbench/contrib/preferences/browser/settingsLayout": { - "fileExplorer": "Explorador" } } } From 34e76cf9a297e866bf3199321a4ba681c4e93227 Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Wed, 31 Aug 2022 10:05:50 -0700 Subject: [PATCH 6/6] fixup!: slim down package.json for lang. ext --- .../package.json | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/package.json b/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/package.json index 543a52e0781e..4f4aff17b307 100644 --- a/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/package.json +++ b/test/e2e/extensions/ms-ceintl.vscode-language-pack-es-1.70.0/package.json @@ -8,11 +8,9 @@ "type": "git", "url": "https://github.com/Microsoft/vscode-loc" }, - "license": "SEE MIT LICENSE IN LICENSE.md", "engines": { "vscode": "^1.70.0" }, - "icon": "languagepack.png", "categories": [ "Language Packs" ], @@ -30,18 +28,5 @@ ] } ] - }, - "scripts": { - "update": "cd ../vscode && npm run update-localization-extension es" - }, - "__metadata": { - "id": "47e020a1-33db-4cc0-a1b4-42f97781749a", - "publisherId": "0b0882c3-aee3-4d7c-b5f9-872f9be0a115", - "publisherDisplayName": null, - "targetPlatform": "undefined", - "isApplicationScoped": true, - "updated": true, - "isPreReleaseVersion": false, - "preRelease": false } }