35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import assert from "node:assert/strict"
|
|
import test from "node:test"
|
|
import type { Manual } from "@/lib/manuals-types"
|
|
import { sanitizeManualThumbnailsForRuntime } from "@/lib/manuals-render-safety"
|
|
|
|
function buildManual(overrides: Partial<Manual> = {}): Manual {
|
|
return {
|
|
filename: "test-manual.pdf",
|
|
path: "Test/test-manual.pdf",
|
|
manufacturer: "Test",
|
|
category: "Test",
|
|
...overrides,
|
|
}
|
|
}
|
|
|
|
test("sanitizeManualThumbnailsForRuntime keeps relative thumbnails in production", () => {
|
|
const manual = buildManual({ thumbnailUrl: "Test/test-manual.jpg" })
|
|
const result = sanitizeManualThumbnailsForRuntime([manual], {
|
|
isLocalDevelopment: false,
|
|
thumbnailsRoot: "/tmp/manuals-thumbnails",
|
|
})
|
|
|
|
assert.equal(result[0]?.thumbnailUrl, "Test/test-manual.jpg")
|
|
})
|
|
|
|
test("sanitizeManualThumbnailsForRuntime strips missing relative thumbnails in local development", () => {
|
|
const manual = buildManual({ thumbnailUrl: "Test/missing-thumb.jpg" })
|
|
const result = sanitizeManualThumbnailsForRuntime([manual], {
|
|
isLocalDevelopment: true,
|
|
thumbnailsRoot: "/tmp/manuals-thumbnails",
|
|
fileExists: () => false,
|
|
})
|
|
|
|
assert.equal(result[0]?.thumbnailUrl, undefined)
|
|
})
|