scripts/prepare-safe-storage-baseline.test.mjs
Rama main · réplica de lectura del repositorio original.
import assert from "node:assert/strict";
import fs from "node:fs";
import os from "node:os";
import path from "node:path";
import { test } from "node:test";
import { prepareSafeStorageBaseline } from "./prepare-safe-storage-baseline.mjs";
test("baseline preparation enables real writes and rejects drift", (t) => {
const root = fs.mkdtempSync(path.join(os.tmpdir(), "safe-storage-baseline-"));
t.after(() => fs.rmSync(root, { recursive: true, force: true }));
fs.mkdirSync(path.join(root, "src/main"), { recursive: true });
const pkgPath = path.join(root, "package.json");
const settingsPath = path.join(root, "src/main/settings.ts");
fs.writeFileSync(
pkgPath,
JSON.stringify({ devDependencies: { electron: "40.0.0" } }),
);
const original =
"if (safeStorage.isEncryptionAvailable() && !IS_TEST_BUILD) { encrypt(); }";
fs.writeFileSync(settingsPath, original);
prepareSafeStorageBaseline(root);
assert.equal(
fs.readFileSync(settingsPath, "utf8"),
"if (safeStorage.isEncryptionAvailable()) { encrypt(); }",
);
assert.throws(() => prepareSafeStorageBaseline(root), /exactly one/);
fs.writeFileSync(settingsPath, original + original);
assert.throws(() => prepareSafeStorageBaseline(root), /exactly one/);
fs.writeFileSync(
pkgPath,
JSON.stringify({ devDependencies: { electron: "43.0.0" } }),
);
assert.throws(() => prepareSafeStorageBaseline(root), /pinned Electron 40/);
});