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
This commit is contained in:
+73
@@ -0,0 +1,73 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const mocks = vi.hoisted(() => ({
|
||||
existsSync: vi.fn(),
|
||||
readdirSync: vi.fn(),
|
||||
statSync: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("node:fs", () => ({
|
||||
existsSync: mocks.existsSync,
|
||||
readdirSync: mocks.readdirSync,
|
||||
statSync: mocks.statSync,
|
||||
}));
|
||||
|
||||
const originalEnv = { ...process.env };
|
||||
|
||||
beforeEach(() => {
|
||||
vi.resetModules();
|
||||
vi.clearAllMocks();
|
||||
process.env = { ...originalEnv };
|
||||
delete process.env.PREMIERE_DEFAULT_SEQUENCE_PRESET;
|
||||
mocks.existsSync.mockReturnValue(true);
|
||||
mocks.statSync.mockReturnValue({ isDirectory: () => false });
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
process.env = { ...originalEnv };
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
describe("default sequence preset discovery", () => {
|
||||
it("uses and caches an explicit existing preset", async () => {
|
||||
process.env.PREMIERE_DEFAULT_SEQUENCE_PRESET = "C:\\Presets\\Explicit.sqpreset";
|
||||
const { findDefaultSequencePreset } = await import("../../src/tools/sequence.js");
|
||||
expect(findDefaultSequencePreset()).toBe("C:\\Presets\\Explicit.sqpreset");
|
||||
mocks.existsSync.mockReturnValue(false);
|
||||
expect(findDefaultSequencePreset()).toBe("C:\\Presets\\Explicit.sqpreset");
|
||||
});
|
||||
|
||||
it("selects the preferred Windows preset while skipping unrelated installs", async () => {
|
||||
vi.spyOn(process, "platform", "get").mockReturnValue("win32");
|
||||
mocks.readdirSync.mockImplementation((directory) => {
|
||||
const path = String(directory);
|
||||
if (path === "C:\\Program Files\\Adobe") return ["Unrelated", "Adobe Premiere Pro 2026"] as never;
|
||||
if (path.endsWith("SequencePresets")) {
|
||||
return ["Other.sqpreset", "UHD (4K) 2160p 25 fps.sqpreset"] as never;
|
||||
}
|
||||
return [] as never;
|
||||
});
|
||||
const { findDefaultSequencePreset } = await import("../../src/tools/sequence.js");
|
||||
expect(findDefaultSequencePreset()).toMatch(/UHD \(4K\) 2160p 25 fps\.sqpreset$/);
|
||||
});
|
||||
|
||||
it("walks a macOS app bundle and falls back to any preset", async () => {
|
||||
vi.spyOn(process, "platform", "get").mockReturnValue("darwin");
|
||||
mocks.readdirSync.mockImplementation((directory) => {
|
||||
const path = String(directory);
|
||||
if (path === "/Applications") return ["Adobe Premiere Pro 2026"] as never;
|
||||
if (path.endsWith("Adobe Premiere Pro 2026")) return ["Adobe Premiere Pro.app", "README"] as never;
|
||||
if (path.endsWith("SequencePresets")) return ["Cinema.sqpreset"] as never;
|
||||
return [] as never;
|
||||
});
|
||||
const { findDefaultSequencePreset } = await import("../../src/tools/sequence.js");
|
||||
expect(findDefaultSequencePreset()).toMatch(/Cinema\.sqpreset$/);
|
||||
});
|
||||
|
||||
it("returns and caches null when installation discovery fails", async () => {
|
||||
mocks.readdirSync.mockImplementation(() => { throw new Error("access denied"); });
|
||||
const { findDefaultSequencePreset } = await import("../../src/tools/sequence.js");
|
||||
expect(findDefaultSequencePreset()).toBeNull();
|
||||
expect(findDefaultSequencePreset()).toBeNull();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user