summaryrefslogtreecommitdiffhomepage
path: root/packages/app/e2e/session/session-undo-redo.spec.ts
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-12 09:49:14 -0600
committerGitHub <[email protected]>2026-02-12 09:49:14 -0600
commitff4414bb152acfddb5c0eb073c38bedc1df4ae14 (patch)
tree78381c67d21ef6f089647f6b19e7aa2976840dbc /packages/app/e2e/session/session-undo-redo.spec.ts
parent56ad2db02055955f926fda0e4a89055b22ead6f9 (diff)
downloadopencode-ff4414bb152acfddb5c0eb073c38bedc1df4ae14.tar.gz
opencode-ff4414bb152acfddb5c0eb073c38bedc1df4ae14.zip
chore: refactor packages/app files (#13236)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Frank <[email protected]>
Diffstat (limited to 'packages/app/e2e/session/session-undo-redo.spec.ts')
-rw-r--r--packages/app/e2e/session/session-undo-redo.spec.ts32
1 files changed, 15 insertions, 17 deletions
diff --git a/packages/app/e2e/session/session-undo-redo.spec.ts b/packages/app/e2e/session/session-undo-redo.spec.ts
index 2a250dd86..c6ea2aea0 100644
--- a/packages/app/e2e/session/session-undo-redo.spec.ts
+++ b/packages/app/e2e/session/session-undo-redo.spec.ts
@@ -10,21 +10,26 @@ async function seedConversation(input: {
sessionID: string
token: string
}) {
+ const messages = async () =>
+ await input.sdk.session.messages({ sessionID: input.sessionID, limit: 100 }).then((r) => r.data ?? [])
+ const seeded = await messages()
+ const userIDs = new Set(seeded.filter((m) => m.info.role === "user").map((m) => m.info.id))
+
const prompt = input.page.locator(promptSelector)
await expect(prompt).toBeVisible()
- await prompt.click()
- await input.page.keyboard.type(`Reply with exactly: ${input.token}`)
- await input.page.keyboard.press("Enter")
+ await input.sdk.session.promptAsync({
+ sessionID: input.sessionID,
+ noReply: true,
+ parts: [{ type: "text", text: input.token }],
+ })
let userMessageID: string | undefined
await expect
.poll(
async () => {
- const messages = await input.sdk.session
- .messages({ sessionID: input.sessionID, limit: 50 })
- .then((r) => r.data ?? [])
- const users = messages.filter(
+ const users = (await messages()).filter(
(m) =>
+ !userIDs.has(m.info.id) &&
m.info.role === "user" &&
m.parts.filter((p) => p.type === "text").some((p) => p.text.includes(input.token)),
)
@@ -33,21 +38,14 @@ async function seedConversation(input: {
const user = users[users.length - 1]
if (!user) return false
userMessageID = user.info.id
-
- const assistantText = messages
- .filter((m) => m.info.role === "assistant")
- .flatMap((m) => m.parts)
- .filter((p) => p.type === "text")
- .map((p) => p.text)
- .join("\n")
-
- return assistantText.includes(input.token)
+ return true
},
- { timeout: 90_000 },
+ { timeout: 90_000, intervals: [250, 500, 1_000] },
)
.toBe(true)
if (!userMessageID) throw new Error("Expected a user message id")
+ await expect(input.page.locator(`[data-message-id="${userMessageID}"]`).first()).toBeVisible({ timeout: 30_000 })
return { prompt, userMessageID }
}