mirror of
https://github.com/getpaseo/paseo.git
synced 2026-08-14 20:32:46 +00:00
48 lines
2.1 KiB
TypeScript
48 lines
2.1 KiB
TypeScript
import { test, expect } from './fixtures'
|
|
import { createTempGitRepo } from './helpers/workspace'
|
|
import { ensureHostSelected, gotoHome, setWorkingDirectory } from './helpers/app'
|
|
|
|
function escapeRegex(value: string): string {
|
|
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
|
}
|
|
|
|
test('global draft create uses input status controls and preserves optimistic flow', async ({ page }) => {
|
|
const repo = await createTempGitRepo('paseo-e2e-global-draft-')
|
|
const prompt = `global draft prompt ${Date.now()}`
|
|
|
|
try {
|
|
await gotoHome(page)
|
|
await ensureHostSelected(page)
|
|
await setWorkingDirectory(page, repo.path)
|
|
|
|
await expect(page.getByTestId('working-directory-select').first()).toBeVisible({ timeout: 30_000 })
|
|
|
|
const providerSelector = page.getByTestId('agent-provider-selector').first()
|
|
const modeSelector = page.getByTestId('agent-mode-selector').first()
|
|
const modelSelector = page.getByTestId('agent-model-selector').first()
|
|
const thinkingSelector = page.getByTestId('agent-thinking-selector').first()
|
|
|
|
await expect(providerSelector).toBeVisible({ timeout: 30_000 })
|
|
await expect(modeSelector).toBeVisible({ timeout: 30_000 })
|
|
await expect(modelSelector).toBeVisible({ timeout: 30_000 })
|
|
await expect(thinkingSelector).toBeVisible({ timeout: 30_000 })
|
|
|
|
const selectedMode = ((await modeSelector.innerText()) ?? '').trim()
|
|
const selectedModel = ((await modelSelector.innerText()) ?? '').trim()
|
|
const selectedThinking = ((await thinkingSelector.innerText()) ?? '').trim()
|
|
|
|
const composer = page.getByRole('textbox', { name: 'Message agent...' }).first()
|
|
await composer.fill(prompt)
|
|
await composer.press('Enter')
|
|
|
|
await expect(page.getByText(prompt, { exact: true }).first()).toBeVisible({ timeout: 5_000 })
|
|
await expect(page).toHaveURL(/\/workspace\//, { timeout: 30_000 })
|
|
|
|
await expect(modelSelector).toContainText(new RegExp(escapeRegex(selectedModel), 'i'))
|
|
await expect(modeSelector).toContainText(new RegExp(escapeRegex(selectedMode), 'i'))
|
|
await expect(thinkingSelector).toContainText(new RegExp(escapeRegex(selectedThinking), 'i'))
|
|
} finally {
|
|
await repo.cleanup()
|
|
}
|
|
})
|