Release Privacy Tools 0.1.0
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import {
|
||||
detectKind,
|
||||
fileExtension,
|
||||
inventoryIdentity,
|
||||
} from "../../src/privacy";
|
||||
import { jpegFixture, pngFixture, webpFixture } from "../fixtures/images";
|
||||
|
||||
describe("file identity", () => {
|
||||
it("detects supported containers from bytes", () => {
|
||||
expect(detectKind(jpegFixture())).toBe("jpeg");
|
||||
expect(detectKind(pngFixture())).toBe("png");
|
||||
expect(detectKind(webpFixture())).toBe("webp");
|
||||
expect(detectKind(Uint8Array.from([0x25, 0x50, 0x44, 0x46, 0x2d]))).toBe(
|
||||
"pdf",
|
||||
);
|
||||
});
|
||||
|
||||
it("normalizes leaf extensions without trusting paths", () => {
|
||||
expect(fileExtension("folder\\PHOTO.JPEG")).toBe("jpeg");
|
||||
expect(fileExtension(".hidden")).toBe("");
|
||||
expect(fileExtension("no-extension")).toBe("");
|
||||
});
|
||||
|
||||
it("reports claimed and extension mismatches", () => {
|
||||
const identity = inventoryIdentity(
|
||||
"portrait.jpg",
|
||||
"image/jpeg",
|
||||
pngFixture(),
|
||||
);
|
||||
expect(identity).toMatchObject({
|
||||
detectedKind: "png",
|
||||
detectedType: "image/png",
|
||||
typeMatch: "mismatch",
|
||||
});
|
||||
});
|
||||
|
||||
it("does not infer an unknown payload from its extension", () => {
|
||||
const identity = inventoryIdentity(
|
||||
"claim.png",
|
||||
"image/png",
|
||||
Uint8Array.from([1, 2, 3]),
|
||||
);
|
||||
expect(identity.detectedKind).toBe("unknown");
|
||||
expect(identity.typeMatch).toBe("unknown");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user