mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-17 22:24:29 +00:00
test: lock in process, ripgrep, and installation helpers
This commit is contained in:
@@ -36,4 +36,38 @@ describe("file.ripgrep", () => {
|
|||||||
expect(hasVisible).toBe(true)
|
expect(hasVisible).toBe(true)
|
||||||
expect(hasHidden).toBe(false)
|
expect(hasHidden).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("search returns match metadata", async () => {
|
||||||
|
await using tmp = await tmpdir({
|
||||||
|
init: async (dir) => {
|
||||||
|
await Bun.write(path.join(dir, "match.ts"), "const value = 'needle'\n")
|
||||||
|
await Bun.write(path.join(dir, "other.ts"), "const value = 'other'\n")
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const hits = await Ripgrep.search({
|
||||||
|
cwd: tmp.path,
|
||||||
|
pattern: "needle",
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(hits.length).toBe(1)
|
||||||
|
expect(hits[0]?.path.text).toBe("match.ts")
|
||||||
|
expect(hits[0]?.line_number).toBe(1)
|
||||||
|
expect(hits[0]?.lines.text).toContain("needle")
|
||||||
|
})
|
||||||
|
|
||||||
|
test("search returns empty when nothing matches", async () => {
|
||||||
|
await using tmp = await tmpdir({
|
||||||
|
init: async (dir) => {
|
||||||
|
await Bun.write(path.join(dir, "match.ts"), "const value = 'other'\n")
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const hits = await Ripgrep.search({
|
||||||
|
cwd: tmp.path,
|
||||||
|
pattern: "needle",
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(hits).toEqual([])
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
47
packages/opencode/test/installation/installation.test.ts
Normal file
47
packages/opencode/test/installation/installation.test.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import { afterEach, describe, expect, test } from "bun:test"
|
||||||
|
import { Installation } from "../../src/installation"
|
||||||
|
|
||||||
|
const fetch0 = globalThis.fetch
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
globalThis.fetch = fetch0
|
||||||
|
})
|
||||||
|
|
||||||
|
describe("installation", () => {
|
||||||
|
test("reads release version from GitHub releases", async () => {
|
||||||
|
globalThis.fetch = (async () =>
|
||||||
|
new Response(JSON.stringify({ tag_name: "v1.2.3" }), {
|
||||||
|
status: 200,
|
||||||
|
headers: { "content-type": "application/json" },
|
||||||
|
})) as unknown as typeof fetch
|
||||||
|
|
||||||
|
expect(await Installation.latest("unknown")).toBe("1.2.3")
|
||||||
|
})
|
||||||
|
|
||||||
|
test("reads scoop manifest versions", async () => {
|
||||||
|
globalThis.fetch = (async () =>
|
||||||
|
new Response(JSON.stringify({ version: "2.3.4" }), {
|
||||||
|
status: 200,
|
||||||
|
headers: { "content-type": "application/json" },
|
||||||
|
})) as unknown as typeof fetch
|
||||||
|
|
||||||
|
expect(await Installation.latest("scoop")).toBe("2.3.4")
|
||||||
|
})
|
||||||
|
|
||||||
|
test("reads chocolatey feed versions", async () => {
|
||||||
|
globalThis.fetch = (async () =>
|
||||||
|
new Response(
|
||||||
|
JSON.stringify({
|
||||||
|
d: {
|
||||||
|
results: [{ Version: "3.4.5" }],
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
status: 200,
|
||||||
|
headers: { "content-type": "application/json" },
|
||||||
|
},
|
||||||
|
)) as unknown as typeof fetch
|
||||||
|
|
||||||
|
expect(await Installation.latest("choco")).toBe("3.4.5")
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -56,4 +56,20 @@ describe("util.process", () => {
|
|||||||
expect(out.code).not.toBe(0)
|
expect(out.code).not.toBe(0)
|
||||||
expect(Date.now() - started).toBeLessThan(1000)
|
expect(Date.now() - started).toBeLessThan(1000)
|
||||||
}, 3000)
|
}, 3000)
|
||||||
|
|
||||||
|
test("uses cwd when spawning commands", async () => {
|
||||||
|
const out = await Process.run(node('process.stdout.write(process.cwd())'), {
|
||||||
|
cwd: "/tmp",
|
||||||
|
})
|
||||||
|
expect(out.stdout.toString()).toBe("/tmp")
|
||||||
|
})
|
||||||
|
|
||||||
|
test("merges environment overrides", async () => {
|
||||||
|
const out = await Process.run(node('process.stdout.write(process.env.OPENCODE_TEST ?? "")'), {
|
||||||
|
env: {
|
||||||
|
OPENCODE_TEST: "set",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
expect(out.stdout.toString()).toBe("set")
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user