Files
jhonny-editor/code/tests/tools/uxp-tick-time-arithmetic-workflows.test.ts
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

20 lines
1.4 KiB
TypeScript
Executable File

import { describe, expect, it, vi } from "vitest";
import { getUxpTickTimeArithmeticWorkflowTools } from "../../src/tools/uxp-tick-time-arithmetic-workflows.js";
import type { UxpWebSocketBridge } from "../../src/bridge/uxp-websocket-bridge.js";
describe("public native TickTime arithmetic MCP tool", () => {
it("uses a closed read-only schema and preserves canonical tick inputs", async () => {
const request = vi.fn().mockResolvedValue({ result: { ticks: "3", seconds: 0 } });
const tool = getUxpTickTimeArithmeticWorkflowTools({ request } as unknown as UxpWebSocketBridge).calculate_tick_time_uxp;
expect(tool.parameters).toMatchObject({
additionalProperties: false, required: ["operation", "base_ticks"],
properties: { operation: { enum: ["add", "subtract", "multiply", "divide"] }, base_ticks: { pattern: "^(?:0|-?[1-9][0-9]{0,17})$" } },
});
expect(tool.annotations).toEqual({ readOnlyHint: true, destructiveHint: false });
await tool.handler({ operation: "add", base_ticks: "1", operand_ticks: "2" });
await tool.handler({ operation: "multiply", base_ticks: "3", factor: 4 });
expect(request).toHaveBeenNthCalledWith(1, "time.tickArithmetic.inspect", { operation: "add", baseTicks: "1", operandTicks: "2" });
expect(request).toHaveBeenNthCalledWith(2, "time.tickArithmetic.inspect", { operation: "multiply", baseTicks: "3", factor: 4 });
});
});