Files
jhonny-editor/code/tests/tools/edit-readiness.test.ts
T
João Henrique b541f502ba feat: initial commit - Jhonny Editor
- Adicionado estrutura completa do projeto
- Configurado MCP server para Premiere Pro
- Adicionado documentação e skills
- Configurado Gitignore para o projeto
2026-09-08 09:59:31 -04:00

60 lines
2.7 KiB
TypeScript
Executable File

import { beforeEach, describe, expect, it, vi } from "vitest";
vi.mock("../../src/bridge/file-bridge.js", () => ({ sendCommand: vi.fn().mockResolvedValue({ success: true, data: {} }) }));
import { sendCommand } from "../../src/bridge/file-bridge.js";
import { getInspectionTools } from "../../src/tools/inspection.js";
const mocked = vi.mocked(sendCommand);
const tool = getInspectionTools({ tempDir: "/tmp/test" }).inspect_edit_readiness;
const reviewReport = getInspectionTools({ tempDir: "/tmp/test" }).inspect_sequence_review_report;
beforeEach(() => vi.clearAllMocks());
describe("inspect_edit_readiness", () => {
it("checks five structural defect classes in one read-only bridge call", async () => {
await tool.handler({ primary_video_track: 0, maximum_scale_percent: 125 });
expect(mocked).toHaveBeenCalledTimes(1);
const script = mocked.mock.calls[0][0];
for (const marker of ["PRIMARY_TRACK_GAP", "EMPTY_VIDEO_TIMELINE", "DISABLED_CLIP", "MUTED_TRACK", "EXCESSIVE_SCALE"]) {
expect(script).toContain(marker);
}
expect(script).not.toMatch(/setMute\(|setValue\(|remove\(|insertClip\(/);
});
it("rejects invalid thresholds locally", async () => {
await expect(tool.handler({ primary_video_track: -1 })).resolves.toMatchObject({ success: false });
await expect(tool.handler({ maximum_scale_percent: 0 })).resolves.toMatchObject({ success: false });
expect(mocked).not.toHaveBeenCalled();
});
});
describe("inspect_sequence_review_report", () => {
it("builds one read-only, privacy-bounded handoff report", async () => {
await reviewReport.handler({ sequence_id: "Final Cut", primary_video_track: 1, max_markers: 25 });
expect(mocked).toHaveBeenCalledTimes(1);
const script = mocked.mock.calls[0][0];
for (const marker of [
"sequence-review-handoff",
"PRIMARY_VIDEO_TRACK_UNAVAILABLE",
"DISABLED_CLIP",
"MUTED_TRACK",
"isOffline",
"markersTruncated",
]) {
expect(script).toContain(marker);
}
expect(script).not.toContain("getMediaPath");
expect(script).not.toContain("entry.comments");
expect(script).not.toMatch(/setValue\(|remove\(|insertClip\(|save\(/);
});
it("includes private marker comments only after explicit opt-in", async () => {
await reviewReport.handler({ include_marker_comments: true });
expect(mocked.mock.calls[0][0]).toContain("entry.comments");
});
it("rejects invalid bounded input before using the bridge", async () => {
await expect(reviewReport.handler({ primary_video_track: -1 })).resolves.toMatchObject({ success: false });
await expect(reviewReport.handler({ max_markers: 201 })).resolves.toMatchObject({ success: false });
expect(mocked).not.toHaveBeenCalled();
});
});