feat(simulation): add literal screen text matching (#36085)
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import { expect, test } from "bun:test"
|
||||
import { matches } from "../src/frontend/actions"
|
||||
|
||||
test("matches literal screen text", () => {
|
||||
const harness = { screen: () => "OpenCode [ready].*" }
|
||||
|
||||
expect(matches(harness, "OpenCode")).toBe(true)
|
||||
expect(matches(harness, "[ready].*")).toBe(true)
|
||||
expect(matches(harness, "OpenCode.*ready")).toBe(false)
|
||||
expect(matches(harness, "opencode")).toBe(false)
|
||||
})
|
||||
@@ -0,0 +1,21 @@
|
||||
import { expect, test } from "bun:test"
|
||||
import { Frontend } from "../src/protocol"
|
||||
|
||||
test("decodes ui.matches text params", () => {
|
||||
expect(
|
||||
Frontend.decodeRequest({
|
||||
jsonrpc: "2.0",
|
||||
id: 1,
|
||||
method: "ui.matches",
|
||||
params: { text: "OpenCode [ready].*" },
|
||||
}),
|
||||
).toMatchObject({ method: "ui.matches", params: { text: "OpenCode [ready].*" } })
|
||||
expect(() =>
|
||||
Frontend.decodeRequest({
|
||||
jsonrpc: "2.0",
|
||||
id: 1,
|
||||
method: "ui.matches",
|
||||
params: { pattern: "OpenCode.*" },
|
||||
}),
|
||||
).toThrow()
|
||||
})
|
||||
Reference in New Issue
Block a user