mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
test: fix docker test-image env and container-specific test guards
Make the full pnpm test:docker suite pass the env-dependent tests (~85 failures): - Dockerfile.test: ENV LD_LIBRARY_PATH=/usr/local/lib so the built libheif 1.21 is not shadowed by the base image's older system libheif (heif-dec failed with an undefined-symbol error -> 'No HEIF decoder found' on 72 HEIF tests); add libjxl-tools (JXL) and ghostscript + the ImageMagick policy.xml EPS allow-edit. - docker-compose.test.yml: SYNC_WAIT_MS=30000 so sync-wait image tools do not fall back to 202 under single-container contention (10 tests). - install_feature.py: guard tarfile.extractall(filter='data') behind Python>=3.12 (bookworm ships 3.11); the manual entry guards already protect. - feature-status.test.ts / docker-file-secrets.test.ts: skip the two cases that cannot hold inside the container (/.dockerenv always present; root bypasses chmod). Verified on host: all still pass.
This commit is contained in:
@@ -669,13 +669,18 @@ describe("ensureAiDirs", () => {
|
||||
errorSpy.mockRestore();
|
||||
});
|
||||
|
||||
it("is a no-op outside managed environments (no manifest, no /.dockerenv)", async () => {
|
||||
process.env.FEATURE_MANIFEST_PATH = join(tempDir, "missing-manifest.json");
|
||||
process.env.DATA_DIR = join(tempDir, "fresh-data");
|
||||
vi.resetModules();
|
||||
mod = await import("../../../apps/api/src/lib/feature-status.js");
|
||||
// /.dockerenv always exists inside the test container, which makes
|
||||
// isDockerEnvironment() true regardless of the manifest path; skip there.
|
||||
it.skipIf(existsSync("/.dockerenv"))(
|
||||
"is a no-op outside managed environments (no manifest, no /.dockerenv)",
|
||||
async () => {
|
||||
process.env.FEATURE_MANIFEST_PATH = join(tempDir, "missing-manifest.json");
|
||||
process.env.DATA_DIR = join(tempDir, "fresh-data");
|
||||
vi.resetModules();
|
||||
mod = await import("../../../apps/api/src/lib/feature-status.js");
|
||||
|
||||
mod.ensureAiDirs();
|
||||
expect(existsSync(join(tempDir, "fresh-data"))).toBe(false);
|
||||
});
|
||||
mod.ensureAiDirs();
|
||||
expect(existsSync(join(tempDir, "fresh-data"))).toBe(false);
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user