mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
test: add download mime, quality verification
This commit is contained in:
@@ -2,6 +2,7 @@ import { describe, expect, it } from "vitest";
|
||||
import { TOOLS } from ".";
|
||||
import { PREVIEW_GROUPS } from "../catalog";
|
||||
import type { PixelImage } from "../core/types";
|
||||
import type { OutputMime } from "../core/io";
|
||||
import { defaultSchemaParams, sanitizeSchemaParams } from "../registry-schema";
|
||||
import type { FileResult, ToolResult } from "./types";
|
||||
|
||||
@@ -78,6 +79,39 @@ describe("registry-new (переведённые инструменты)", () =>
|
||||
}
|
||||
});
|
||||
|
||||
it("output metadata согласован с MIME и quality-схемой", () => {
|
||||
const extensions: Record<OutputMime, string> = {
|
||||
"image/png": "png",
|
||||
"image/jpeg": "jpg",
|
||||
"image/webp": "webp",
|
||||
"image/bmp": "bmp",
|
||||
};
|
||||
|
||||
for (const tool of TOOLS) {
|
||||
const output = tool.output;
|
||||
if (!output) continue;
|
||||
expect(extensions[output.mime], `${tool.id}: mime`).toBe(output.ext);
|
||||
if (output.qualityParamId) {
|
||||
const qualityField = tool.schema.fields[output.qualityParamId];
|
||||
expect(
|
||||
qualityField,
|
||||
`${tool.id}.${output.qualityParamId}`,
|
||||
).toBeDefined();
|
||||
expect(["number", "slider"], `${tool.id}: quality kind`).toContain(
|
||||
qualityField?.spec.kind,
|
||||
);
|
||||
} else if (output.mime === "image/jpeg" || output.mime === "image/webp") {
|
||||
expect(output.qualityParamId, `${tool.id}: quality`).toBeTruthy();
|
||||
}
|
||||
if (output.mime === "image/bmp") {
|
||||
expect(
|
||||
output.qualityParamId,
|
||||
`${tool.id}: bmp quality`,
|
||||
).toBeUndefined();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
it("source-aware dimension defaults применяются только к image tools", () => {
|
||||
for (const tool of TOOLS) {
|
||||
for (const field of Object.values(tool.schema.fields)) {
|
||||
|
||||
Reference in New Issue
Block a user