tf_code/packages/opencode/test/installation/installation.test.ts

48 lines
1.3 KiB
TypeScript

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")
})
})