Spaces:
Sleeping
Sleeping
File size: 1,561 Bytes
b01d539 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import { mkdtemp, mkdir, readFile, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { afterEach, describe, expect, it } from "vitest";
import { buildApplication } from "../app.js";
import { parseEnvironment } from "../config/environment.js";
const temporaryDirectories: string[] = [];
afterEach(async () => {
await Promise.all(
temporaryDirectories
.splice(0)
.map((directory) => rm(directory, { recursive: true, force: true })),
);
});
describe("legacy bucket database isolation", () => {
it("never opens or mutates the legacy database under object storage", async () => {
const root = await mkdtemp(join(tmpdir(), "oloka-legacy-"));
temporaryDirectories.push(root);
const objectStorageRoot = join(root, "objects");
const legacyPath = join(objectStorageRoot, "database", "oloka-dev.db");
const legacyEvidence = Buffer.from("legacy-evidence-must-remain-untouched");
await mkdir(join(objectStorageRoot, "database"), { recursive: true });
await writeFile(legacyPath, legacyEvidence);
const app = await buildApplication({
environment: parseEnvironment({
NODE_ENV: "test",
DATABASE_PATH: join(root, "local", "oloka.db"),
OBJECT_STORAGE_ROOT: objectStorageRoot,
OLOKA_DATABASE_BOOTSTRAP_MODE: "fresh-if-replica-missing",
LOG_LEVEL: "silent",
}),
serveFrontend: false,
});
await app.close();
await expect(readFile(legacyPath)).resolves.toEqual(legacyEvidence);
});
});
|