diff options
| author | Adam <[email protected]> | 2026-01-22 06:50:04 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-01-22 07:34:44 -0600 |
| commit | c031139b89dcc8962b38ead078aff7b4653adf54 (patch) | |
| tree | 5e99272c84ce526413517d4308a8c83da854536a /packages | |
| parent | 710dc4fa94c8023fbbead371b3bd1ba4764ed398 (diff) | |
| download | opencode-c031139b89dcc8962b38ead078aff7b4653adf54.tar.gz opencode-c031139b89dcc8962b38ead078aff7b4653adf54.zip | |
test(app): model picker smoke test
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/app/e2e/model-picker.spec.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/app/e2e/model-picker.spec.ts b/packages/app/e2e/model-picker.spec.ts new file mode 100644 index 000000000..9e64b3dfb --- /dev/null +++ b/packages/app/e2e/model-picker.spec.ts @@ -0,0 +1,43 @@ +import { test, expect } from "./fixtures" +import { promptSelector } from "./utils" + +test("smoke model selection updates prompt footer", async ({ page, gotoSession }) => { + await gotoSession() + + await page.locator(promptSelector).click() + await page.keyboard.type("/model") + + const command = page.locator('[data-slash-id="model.choose"]') + await expect(command).toBeVisible() + await command.hover() + + await page.keyboard.press("Enter") + + const dialog = page.getByRole("dialog") + await expect(dialog).toBeVisible() + + const input = dialog.getByRole("textbox").first() + + const selected = dialog.locator('[data-slot="list-item"][data-selected="true"]').first() + await expect(selected).toBeVisible() + + const other = dialog.locator('[data-slot="list-item"]:not([data-selected="true"])').first() + const target = (await other.count()) > 0 ? other : selected + + const key = await target.getAttribute("data-key") + if (!key) throw new Error("Failed to resolve model key from list item") + + const name = (await target.locator("span").first().innerText()).trim() + const model = key.split(":").slice(1).join(":") + + await input.fill(model) + + const item = dialog.locator(`[data-slot="list-item"][data-key="${key}"]`) + await expect(item).toBeVisible() + await item.click() + + await expect(dialog).toHaveCount(0) + + const form = page.locator(promptSelector).locator("xpath=ancestor::form[1]") + await expect(form.locator('[data-component="button"]').filter({ hasText: name }).first()).toBeVisible() +}) |
