Something went wrong. Try again.
fork of prime agent with changes i want but are not upstreamable probqbly (and some fixes)
Something went wrong. Try again.
2.4 kB · 51 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import { mkdtempSync, readFileSync, rmSync } from "node:fs";import { tmpdir } from "node:os";import { join } from "node:path";import { afterEach, describe, expect, it } from "vitest";import { clipboardNativePackageByPlatform, writeClipboardBinaryBinding } from "../scripts/clipboard-binary-binding.mjs";import { NATIVE_PLATFORMS } from "../src/utils/native-installation.js";
const platforms = [...NATIVE_PLATFORMS];const bundledPlatforms = platforms.filter((platform) => clipboardNativePackageByPlatform[platform] !== null);const unbundledPlatforms = platforms.filter((platform) => clipboardNativePackageByPlatform[platform] === null);
let directory: string | undefined;
afterEach(() => { if (directory) rmSync(directory, { recursive: true, force: true }); directory = undefined;});
describe("standalone clipboard binding", () => { it("maps every standalone target to a native clipboard package", () => { expect(Object.keys(clipboardNativePackageByPlatform)).toEqual(platforms); });
it.each(bundledPlatforms)("generates a static native require for %s", (platform) => { directory = mkdtempSync(join(tmpdir(), "prime-clipboard-binding-")); const output = join(directory, "clipboard-binary-binding.js"); writeClipboardBinaryBinding(output, platform); expect(readFileSync(output, "utf8")).toBe( `export function loadBundledClipboard() {\n\treturn require(${JSON.stringify(clipboardNativePackageByPlatform[platform])});\n}\n`, ); });
it("generates the fallback loader when no native musl binding is published", () => { expect(unbundledPlatforms).toEqual(["linux-arm64-musl", "linux-x64-musl", "linux-x64-musl-baseline"]); for (const platform of unbundledPlatforms) { directory = mkdtempSync(join(tmpdir(), "prime-clipboard-binding-")); const output = join(directory, "clipboard-binary-binding.js"); writeClipboardBinaryBinding(output, platform); expect(readFileSync(output, "utf8")).toBe("export function loadBundledClipboard() {\n\treturn null;\n}\n"); rmSync(directory, { recursive: true, force: true }); directory = undefined; } });
it("rejects unsupported targets", () => { directory = mkdtempSync(join(tmpdir(), "prime-clipboard-binding-")); expect(() => writeClipboardBinaryBinding(join(directory!, "binding.js"), "windows-x64")).toThrow( "Unsupported binary platform", ); });});