Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/chrome-cdp/__e2e__/cleanup.test.ts

Raw
import assert from "node:assert/strict";
import { existsSync } from "node:fs";
import { mkdtemp, rm, writeFile } from "node:fs/promises";
import { test } from "vitest";
import { Browser } from "../browser.ts";
import { TMP_PREFIX } from "../lib.ts";

test("only tagged dead-owner temporary directories are reclaimed", async () => {
	const stale = await mkdtemp(TMP_PREFIX);
	const unknown = await mkdtemp(TMP_PREFIX);
	try {
		await writeFile(
			`${stale}/.pi-chrome-cdp-owner.json`,
			JSON.stringify({
				tag: "pi-chrome-cdp-v1",
				ownerPid: 2147483647,
				browserPid: 0,
			}),
		);
		const b = await Browser.launch({});
		await b.close();
		assert.equal(existsSync(stale), false);
		assert.equal(existsSync(unknown), true);
	} finally {
		await rm(stale, { recursive: true, force: true });
		await rm(unknown, { recursive: true, force: true });
	}
});