Files
jhonny-editor/code/tests/tools/uxp-object-mask-audit-workflows.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

27 lines
1.5 KiB
TypeScript
Executable File

import { describe, expect, it, vi } from "vitest";
import { getUxpObjectMaskAuditWorkflowTools } from "../../src/tools/uxp-object-mask-audit-workflows.js";
import type { UxpWebSocketBridge } from "../../src/bridge/uxp-websocket-bridge.js";
describe("public documented UXP object-mask audit tool", () => {
it("publishes a bounded read-only schema and maps only explicit audit selectors", async () => {
const request = vi.fn().mockResolvedValue({ projectGuid: "project-1" });
const tool = getUxpObjectMaskAuditWorkflowTools({ request } as unknown as UxpWebSocketBridge).audit_object_masks_uxp;
expect(tool.parameters).toMatchObject({
type: "object", additionalProperties: false,
properties: {
expected_project_guid: { minLength: 1, maxLength: 512 },
sequence_ids: { minItems: 1, maxItems: 64, uniqueItems: true, items: { minLength: 1, maxLength: 512 } },
},
});
expect(tool.description).toContain("not mask count");
expect(tool.operationalCapability).toMatchObject({ backend: "UXP", minimumPremiereVersion: "26.3", hostVerificationRequired: true });
await tool.handler({ expected_project_guid: "project-1", sequence_ids: ["sequence-b", "sequence-a"] });
await tool.handler({});
expect(request).toHaveBeenNthCalledWith(1, "objectMask.audit", {
expectedProjectGuid: "project-1", sequenceIds: ["sequence-b", "sequence-a"],
});
expect(request).toHaveBeenNthCalledWith(2, "objectMask.audit", {});
});
});