summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorFilip <[email protected]>2026-01-30 19:04:02 +0100
committerGitHub <[email protected]>2026-01-30 18:04:02 +0000
commitf48e2e56c95a7b96648176f1f783929dc4f33b37 (patch)
tree106a32d8955e3ec5f10b80d1d6dbbae01d22626a /packages
parentfe66ca163cbb9d689cf296c4c2f7a63414c1cf45 (diff)
downloadopencode-f48e2e56c95a7b96648176f1f783929dc4f33b37.tar.gz
opencode-f48e2e56c95a7b96648176f1f783929dc4f33b37.zip
test(app): change language test (#11295)
Diffstat (limited to 'packages')
-rw-r--r--packages/app/e2e/app/home.spec.ts (renamed from packages/app/e2e/home.spec.ts)4
-rw-r--r--packages/app/e2e/app/navigation.spec.ts (renamed from packages/app/e2e/navigation.spec.ts)4
-rw-r--r--packages/app/e2e/app/palette.spec.ts (renamed from packages/app/e2e/palette.spec.ts)4
-rw-r--r--packages/app/e2e/app/server-default.spec.ts (renamed from packages/app/e2e/server-default.spec.ts)4
-rw-r--r--packages/app/e2e/app/session.spec.ts (renamed from packages/app/e2e/session.spec.ts)4
-rw-r--r--packages/app/e2e/app/titlebar-history.spec.ts (renamed from packages/app/e2e/titlebar-history.spec.ts)4
-rw-r--r--packages/app/e2e/files/file-open.spec.ts (renamed from packages/app/e2e/file-open.spec.ts)4
-rw-r--r--packages/app/e2e/files/file-tree.spec.ts (renamed from packages/app/e2e/file-tree.spec.ts)2
-rw-r--r--packages/app/e2e/files/file-viewer.spec.ts (renamed from packages/app/e2e/file-viewer.spec.ts)4
-rw-r--r--packages/app/e2e/models/model-picker.spec.ts (renamed from packages/app/e2e/model-picker.spec.ts)4
-rw-r--r--packages/app/e2e/models/models-visibility.spec.ts (renamed from packages/app/e2e/models-visibility.spec.ts)4
-rw-r--r--packages/app/e2e/prompt/context.spec.ts (renamed from packages/app/e2e/context.spec.ts)4
-rw-r--r--packages/app/e2e/prompt/prompt-mention.spec.ts (renamed from packages/app/e2e/prompt-mention.spec.ts)4
-rw-r--r--packages/app/e2e/prompt/prompt-slash-open.spec.ts (renamed from packages/app/e2e/prompt-slash-open.spec.ts)4
-rw-r--r--packages/app/e2e/prompt/prompt.spec.ts (renamed from packages/app/e2e/prompt.spec.ts)4
-rw-r--r--packages/app/e2e/settings/settings-language.spec.ts39
-rw-r--r--packages/app/e2e/settings/settings-providers.spec.ts (renamed from packages/app/e2e/settings-providers.spec.ts)4
-rw-r--r--packages/app/e2e/settings/settings.spec.ts (renamed from packages/app/e2e/settings.spec.ts)4
-rw-r--r--packages/app/e2e/sidebar/sidebar-session-links.spec.ts (renamed from packages/app/e2e/sidebar-session-links.spec.ts)32
-rw-r--r--packages/app/e2e/sidebar/sidebar.spec.ts (renamed from packages/app/e2e/sidebar.spec.ts)4
-rw-r--r--packages/app/e2e/terminal/terminal-init.spec.ts (renamed from packages/app/e2e/terminal-init.spec.ts)4
-rw-r--r--packages/app/e2e/terminal/terminal.spec.ts (renamed from packages/app/e2e/terminal.spec.ts)4
-rw-r--r--packages/app/e2e/utils.ts2
-rw-r--r--packages/app/src/components/settings-general.tsx1
24 files changed, 84 insertions, 68 deletions
diff --git a/packages/app/e2e/home.spec.ts b/packages/app/e2e/app/home.spec.ts
index c6fb0e3b0..f21dc40ec 100644
--- a/packages/app/e2e/home.spec.ts
+++ b/packages/app/e2e/app/home.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { serverName } from "./utils"
+import { test, expect } from "../fixtures"
+import { serverName } from "../utils"
test("home renders and shows core entrypoints", async ({ page }) => {
await page.goto("/")
diff --git a/packages/app/e2e/navigation.spec.ts b/packages/app/e2e/app/navigation.spec.ts
index 76923af6e..0812ea018 100644
--- a/packages/app/e2e/navigation.spec.ts
+++ b/packages/app/e2e/app/navigation.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { dirPath, promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { dirPath, promptSelector } from "../utils"
test("project route redirects to /session", async ({ page, directory, slug }) => {
await page.goto(dirPath(directory))
diff --git a/packages/app/e2e/palette.spec.ts b/packages/app/e2e/app/palette.spec.ts
index 617c55ac1..264b463bb 100644
--- a/packages/app/e2e/palette.spec.ts
+++ b/packages/app/e2e/app/palette.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { modKey } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey } from "../utils"
test("search palette opens and closes", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/server-default.spec.ts b/packages/app/e2e/app/server-default.spec.ts
index b6b16f0bc..6f44ded1a 100644
--- a/packages/app/e2e/server-default.spec.ts
+++ b/packages/app/e2e/app/server-default.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { serverName, serverUrl } from "./utils"
+import { test, expect } from "../fixtures"
+import { serverName, serverUrl } from "../utils"
const DEFAULT_SERVER_URL_KEY = "opencode.settings.dat:defaultServerUrl"
diff --git a/packages/app/e2e/session.spec.ts b/packages/app/e2e/app/session.spec.ts
index 19e25a421..8d605f0c3 100644
--- a/packages/app/e2e/session.spec.ts
+++ b/packages/app/e2e/app/session.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { promptSelector } from "../utils"
test("can open an existing session and type into the prompt", async ({ page, sdk, gotoSession }) => {
const title = `e2e smoke ${Date.now()}`
diff --git a/packages/app/e2e/titlebar-history.spec.ts b/packages/app/e2e/app/titlebar-history.spec.ts
index d4aa605e6..649e5e0dc 100644
--- a/packages/app/e2e/titlebar-history.spec.ts
+++ b/packages/app/e2e/app/titlebar-history.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { modKey, promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey, promptSelector } from "../utils"
test("titlebar back/forward navigates between sessions", async ({ page, slug, sdk, gotoSession }) => {
await page.setViewportSize({ width: 1400, height: 800 })
diff --git a/packages/app/e2e/file-open.spec.ts b/packages/app/e2e/files/file-open.spec.ts
index fb7104b6b..e384f0b0d 100644
--- a/packages/app/e2e/file-open.spec.ts
+++ b/packages/app/e2e/files/file-open.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { modKey } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey } from "../utils"
test("can open a file tab from the search palette", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/file-tree.spec.ts b/packages/app/e2e/files/file-tree.spec.ts
index 0b04eb246..844da1b32 100644
--- a/packages/app/e2e/file-tree.spec.ts
+++ b/packages/app/e2e/files/file-tree.spec.ts
@@ -1,4 +1,4 @@
-import { test, expect } from "./fixtures"
+import { test, expect } from "../fixtures"
test.skip("file tree can expand folders and open a file", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/file-viewer.spec.ts b/packages/app/e2e/files/file-viewer.spec.ts
index 1e0f8a6f2..bed6d1d36 100644
--- a/packages/app/e2e/file-viewer.spec.ts
+++ b/packages/app/e2e/files/file-viewer.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { modKey } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey } from "../utils"
test("smoke file viewer renders real file content", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/model-picker.spec.ts b/packages/app/e2e/models/model-picker.spec.ts
index 9e64b3dfb..a0c70aabe 100644
--- a/packages/app/e2e/model-picker.spec.ts
+++ b/packages/app/e2e/models/model-picker.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { promptSelector } from "../utils"
test("smoke model selection updates prompt footer", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/models-visibility.spec.ts b/packages/app/e2e/models/models-visibility.spec.ts
index 680ba96a3..0db7580c2 100644
--- a/packages/app/e2e/models-visibility.spec.ts
+++ b/packages/app/e2e/models/models-visibility.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { modKey, promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey, promptSelector } from "../utils"
test("hiding a model removes it from the model picker", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/context.spec.ts b/packages/app/e2e/prompt/context.spec.ts
index beabd2eb7..f0f3f073a 100644
--- a/packages/app/e2e/context.spec.ts
+++ b/packages/app/e2e/prompt/context.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { promptSelector } from "../utils"
test("context panel can be opened from the prompt", async ({ page, sdk, gotoSession }) => {
const title = `e2e smoke context ${Date.now()}`
diff --git a/packages/app/e2e/prompt-mention.spec.ts b/packages/app/e2e/prompt/prompt-mention.spec.ts
index 113b8465f..85acb4c28 100644
--- a/packages/app/e2e/prompt-mention.spec.ts
+++ b/packages/app/e2e/prompt/prompt-mention.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { promptSelector } from "../utils"
test("smoke @mention inserts file pill token", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/prompt-slash-open.spec.ts b/packages/app/e2e/prompt/prompt-slash-open.spec.ts
index 3c29d405c..3e769e330 100644
--- a/packages/app/e2e/prompt-slash-open.spec.ts
+++ b/packages/app/e2e/prompt/prompt-slash-open.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { promptSelector } from "../utils"
test("smoke /open opens file picker dialog", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/prompt.spec.ts b/packages/app/e2e/prompt/prompt.spec.ts
index 3e5892ce8..b58e5e296 100644
--- a/packages/app/e2e/prompt.spec.ts
+++ b/packages/app/e2e/prompt/prompt.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { promptSelector } from "../utils"
function sessionIDFromUrl(url: string) {
const match = /\/session\/([^/?#]+)/.exec(url)
diff --git a/packages/app/e2e/settings/settings-language.spec.ts b/packages/app/e2e/settings/settings-language.spec.ts
new file mode 100644
index 000000000..b2ef70bf8
--- /dev/null
+++ b/packages/app/e2e/settings/settings-language.spec.ts
@@ -0,0 +1,39 @@
+import { test, expect } from "../fixtures"
+import { modKey, settingsLanguageSelectSelector } from "../utils"
+
+test("smoke changing language updates settings labels", async ({ page, gotoSession }) => {
+ await page.addInitScript(() => {
+ localStorage.setItem("opencode.global.dat:language", JSON.stringify({ locale: "en" }))
+ })
+
+ await gotoSession()
+
+ const dialog = page.getByRole("dialog")
+
+ await page.keyboard.press(`${modKey}+Comma`).catch(() => undefined)
+
+ const opened = await dialog
+ .waitFor({ state: "visible", timeout: 3000 })
+ .then(() => true)
+ .catch(() => false)
+
+ if (!opened) {
+ await page.getByRole("button", { name: "Settings" }).first().click()
+ await expect(dialog).toBeVisible()
+ }
+
+ const heading = dialog.getByRole("heading", { level: 2 })
+ await expect(heading).toHaveText("General")
+
+ const select = dialog.locator(settingsLanguageSelectSelector)
+ await expect(select).toBeVisible()
+ await select.locator('[data-slot="select-select-trigger"]').click()
+
+ await page.locator('[data-slot="select-select-item"]').filter({ hasText: "Deutsch" }).click()
+
+ await expect(heading).toHaveText("Allgemein")
+
+ await select.locator('[data-slot="select-select-trigger"]').click()
+ await page.locator('[data-slot="select-select-item"]').filter({ hasText: "English" }).click()
+ await expect(heading).toHaveText("General")
+})
diff --git a/packages/app/e2e/settings-providers.spec.ts b/packages/app/e2e/settings/settings-providers.spec.ts
index 326a9fad1..5b9325c2a 100644
--- a/packages/app/e2e/settings-providers.spec.ts
+++ b/packages/app/e2e/settings/settings-providers.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { modKey, promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey, promptSelector } from "../utils"
test("smoke providers settings opens provider selector", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/settings.spec.ts b/packages/app/e2e/settings/settings.spec.ts
index 09dc942cc..293a4ba9a 100644
--- a/packages/app/e2e/settings.spec.ts
+++ b/packages/app/e2e/settings/settings.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { modKey } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey } from "../utils"
test("smoke settings dialog opens, switches tabs, closes", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/sidebar-session-links.spec.ts b/packages/app/e2e/sidebar/sidebar-session-links.spec.ts
index fab64736e..8c3f69547 100644
--- a/packages/app/e2e/sidebar-session-links.spec.ts
+++ b/packages/app/e2e/sidebar/sidebar-session-links.spec.ts
@@ -1,33 +1,7 @@
-import { test, expect } from "./fixtures"
-import { modKey, promptSelector } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey, promptSelector } from "../utils"
-type Locator = {
- first: () => Locator
- getAttribute: (name: string) => Promise<string | null>
- scrollIntoViewIfNeeded: () => Promise<void>
- click: () => Promise<void>
-}
-
-type Page = {
- locator: (selector: string) => Locator
- keyboard: {
- press: (key: string) => Promise<void>
- }
-}
-
-type Fixtures = {
- page: Page
- slug: string
- sdk: {
- session: {
- create: (input: { title: string }) => Promise<{ data?: { id?: string } }>
- delete: (input: { sessionID: string }) => Promise<unknown>
- }
- }
- gotoSession: (sessionID?: string) => Promise<void>
-}
-
-test("sidebar session links navigate to the selected session", async ({ page, slug, sdk, gotoSession }: Fixtures) => {
+test("sidebar session links navigate to the selected session", async ({ page, slug, sdk, gotoSession }) => {
const stamp = Date.now()
const one = await sdk.session.create({ title: `e2e sidebar nav 1 ${stamp}` }).then((r) => r.data)
diff --git a/packages/app/e2e/sidebar.spec.ts b/packages/app/e2e/sidebar/sidebar.spec.ts
index 925590f51..ba58b1008 100644
--- a/packages/app/e2e/sidebar.spec.ts
+++ b/packages/app/e2e/sidebar/sidebar.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { modKey } from "./utils"
+import { test, expect } from "../fixtures"
+import { modKey } from "../utils"
test("sidebar can be collapsed and expanded", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/terminal-init.spec.ts b/packages/app/e2e/terminal/terminal-init.spec.ts
index cfde2d019..6faa73a75 100644
--- a/packages/app/e2e/terminal-init.spec.ts
+++ b/packages/app/e2e/terminal/terminal-init.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { promptSelector, terminalSelector, terminalToggleKey } from "./utils"
+import { test, expect } from "../fixtures"
+import { promptSelector, terminalSelector, terminalToggleKey } from "../utils"
test("smoke terminal mounts and can create a second tab", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/terminal.spec.ts b/packages/app/e2e/terminal/terminal.spec.ts
index fc558b632..aaf5c2d75 100644
--- a/packages/app/e2e/terminal.spec.ts
+++ b/packages/app/e2e/terminal/terminal.spec.ts
@@ -1,5 +1,5 @@
-import { test, expect } from "./fixtures"
-import { terminalSelector, terminalToggleKey } from "./utils"
+import { test, expect } from "../fixtures"
+import { terminalSelector, terminalToggleKey } from "../utils"
test("terminal panel can be toggled", async ({ page, gotoSession }) => {
await gotoSession()
diff --git a/packages/app/e2e/utils.ts b/packages/app/e2e/utils.ts
index 3de488bd9..3dec12592 100644
--- a/packages/app/e2e/utils.ts
+++ b/packages/app/e2e/utils.ts
@@ -14,6 +14,8 @@ export const promptSelector = '[data-component="prompt-input"]'
export const terminalSelector = '[data-component="terminal"]'
export const modelVariantCycleSelector = '[data-action="model-variant-cycle"]'
+export const settingsLanguageSelectSelector = '[data-action="settings-language"]'
+
export function createSdk(directory?: string) {
return createOpencodeClient({ baseUrl: serverUrl, directory, throwOnError: true })
}
diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx
index 054fa6ef4..b2fb43536 100644
--- a/packages/app/src/components/settings-general.tsx
+++ b/packages/app/src/components/settings-general.tsx
@@ -154,6 +154,7 @@ export const SettingsGeneral: Component = () => {
description={language.t("settings.general.row.language.description")}
>
<Select
+ data-action="settings-language"
options={languageOptions()}
current={languageOptions().find((o) => o.value === language.locale())}
value={(o) => o.value}