feat(i18n): localize hardcoded application copy (#40377)
Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
6c3299103c
commit
e85735028c
@@ -1,10 +1,11 @@
|
||||
import { beforeAll, describe, expect, mock, test } from "bun:test"
|
||||
import { describe, expect, test } from "bun:test"
|
||||
import type { AsyncStorage } from "@solid-primitives/storage"
|
||||
import { createEffect, createRoot } from "solid-js"
|
||||
import type { Platform } from "@/context/platform"
|
||||
import { createPromptReady, createPromptSession } from "@/context/prompt-state"
|
||||
import { ServerScope } from "@/utils/server-scope"
|
||||
import { createDraftStore } from "@/utils/draft-store"
|
||||
|
||||
let Prompt: typeof import("@/context/prompt")
|
||||
let read: ((value: string | null) => void) | undefined
|
||||
|
||||
const storage: AsyncStorage = {
|
||||
@@ -17,32 +18,25 @@ const storage: AsyncStorage = {
|
||||
length: Promise.resolve(0),
|
||||
}
|
||||
|
||||
beforeAll(async () => {
|
||||
mock.module("@solidjs/router", () => ({
|
||||
useParams: () => ({}),
|
||||
useSearchParams: () => [{}],
|
||||
useLocation: () => ({ pathname: "", query: {} }),
|
||||
useNavigate: () => () => undefined,
|
||||
}))
|
||||
mock.module("@opencode-ai/ui/context", () => ({
|
||||
createSimpleContext: () => ({
|
||||
use: () => undefined,
|
||||
provider: () => undefined,
|
||||
}),
|
||||
}))
|
||||
mock.module("@/context/platform", () => ({
|
||||
usePlatform: () => ({ platform: "desktop", storage: () => storage, draftStore: storage }),
|
||||
}))
|
||||
|
||||
Prompt = await import("@/context/prompt")
|
||||
})
|
||||
const platform: Platform = {
|
||||
platform: "web",
|
||||
openExternal: () => undefined,
|
||||
restart: async () => undefined,
|
||||
notify: async () => undefined,
|
||||
draftStore: {
|
||||
...storage,
|
||||
putBlob: async () => {
|
||||
throw new Error("putBlob is not used by this test")
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
describe("prompt persistence", () => {
|
||||
test("waits for an async draft to hydrate before reporting ready", async () => {
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
createRoot((dispose) => {
|
||||
const session = Prompt.createPromptSession(ServerScope.local, { draftID: "draft-async" })
|
||||
const ready = Prompt.createPromptReady(() => session)
|
||||
const session = createPromptSession(ServerScope.local, { draftID: "draft-async" }, undefined, platform)
|
||||
const ready = createPromptReady(() => session)
|
||||
|
||||
expect(ready()).toBe(false)
|
||||
expect(session.current()[0]).toMatchObject({ type: "text", content: "" })
|
||||
|
||||
Reference in New Issue
Block a user