Menu
popagent
publicLatest change 40dd9f4b5ddc84e83c519ed2a4a306eeb16983d4 - Force dependency patch application by Ólafur Búi Ólafsson
import { describe, expect, test } from "bun:test";
const root = new URL("..", import.meta.url).pathname;
describe("deploy.sh", () => {
test("is valid Bash and passes the built-in publication privacy scan", async () => {
const syntax = Bun.spawnSync(["bash", "-n", "deploy.sh"], { cwd: root });
expect(syntax.exitCode).toBe(0);
const privacy = Bun.spawnSync(["bash", "deploy.sh", "privacy-check"], { cwd: root });
expect(privacy.exitCode).toBe(0);
});
test("reinstalls dependencies when a dependency patch changes", async () => {
const script = await Bun.file(new URL("../deploy.sh", import.meta.url)).text();
expect(script).toContain("package.json bun.lock patches/");
expect(script).toContain("bun install --force --frozen-lockfile");
});
test("preserves the pre-update revision across deploy script re-execution", async () => {
const script = await Bun.file(new URL("../deploy.sh", import.meta.url)).text();
expect(script).toContain('POPAGENT_DEPLOY_BEFORE="$checkout_before"');
expect(script).toContain('checkout_before="${POPAGENT_DEPLOY_BEFORE:-$checkout_before}"');
});
test("ignores managed runtime checkouts during verification", async () => {
const bunfig = await Bun.file(new URL("../bunfig.toml", import.meta.url)).text();
const tsconfig = await Bun.file(new URL("../tsconfig.json", import.meta.url)).text();
expect(bunfig).toContain('"data/self-update/**"');
expect(tsconfig).toContain('"data/self-update/**"');
});
});