|
|
@@ -99,11 +99,13 @@ describe('web e2e: mid-turn steering lands durably and visibly', () => {
|
|
|
const input = page.locator('[data-composer-input]').first()
|
|
|
await input.waitFor({ timeout: 10_000 })
|
|
|
const settled = scaffold.whenTurnSettled(MODE === 'record' ? 180_000 : 30_000)
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(PROMPT)
|
|
|
await input.press('Enter')
|
|
|
|
|
|
// Enter remains the Queue gesture. The row action then atomically moves
|
|
|
// this exact occurrence into the current turn's steering outbox.
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(STEER)
|
|
|
await input.press('Enter')
|
|
|
const queuedRow = page.getByRole('listitem').filter({ hasText: STEER })
|
|
|
@@ -203,10 +205,12 @@ describe('web e2e: composer shortcut steers directly', () => {
|
|
|
const input = page.locator('[data-composer-input]').first()
|
|
|
await input.waitFor({ timeout: 10_000 })
|
|
|
const settled = scaffold.whenTurnSettled(30_000)
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(PROMPT)
|
|
|
await input.press('Enter')
|
|
|
await page.getByRole('button', { name: 'Stop generating' }).waitFor({ timeout: 10_000 })
|
|
|
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(STEER)
|
|
|
await input.press('Meta+Enter')
|
|
|
await expect.poll(() => input.textContent(), { timeout: 5_000 }).toBe('')
|
|
|
@@ -265,11 +269,13 @@ describe('web e2e: composer shortcut follows the swapped busy behavior', () => {
|
|
|
|
|
|
const input = page.locator('[data-composer-input]').first()
|
|
|
const settled = scaffold.whenTurnSettled(30_000)
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(PROMPT)
|
|
|
await input.press('Enter')
|
|
|
await page.getByRole('button', { name: 'Stop generating' }).waitFor({ timeout: 10_000 })
|
|
|
|
|
|
const queuedText = 'Queued by the complementary Cmd+Enter shortcut.'
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(queuedText)
|
|
|
await input.press('Meta+Enter')
|
|
|
const queuedRow = page.locator('[data-queue-dock]').getByRole('listitem').filter({ hasText: queuedText })
|
|
|
@@ -329,10 +335,13 @@ describe('web e2e: empty-draft Cmd+Enter steers the whole queue', () => {
|
|
|
|
|
|
// Call 0 streams a question-tool call; the fills must land inside the
|
|
|
// first replay window, before the question composer replaces the textarea.
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(PROMPT)
|
|
|
await input.press('Enter')
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(STEER_ONE)
|
|
|
await input.press('Enter')
|
|
|
+ await page.locator('[data-composer-input][contenteditable="true"]').first().waitFor({ timeout: 10_000 })
|
|
|
await input.fill(STEER_TWO)
|
|
|
await input.press('Enter')
|
|
|
const dock = page.locator('[data-queue-dock]')
|