Rocky_Mountain_Vending/lib/manuals-render-safety.test.ts

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)
})