MikiVL 9738d2cd67 添加 Playwright E2E 测试及构建修复
- 修复 vite.config.mjs base 路径为 "./" 解决 file:// 协议加载失败
- 添加测试专用 mockDialog IPC 绕过原生文件选择对话框
- 重建 better-sqlite3 以适配 Electron 内嵌 Node ABI
- 新增 6 个 E2E 测试:模板增删改、批量生成、文件解析

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 15:01:13 +08:00

21 lines
977 B
JavaScript

const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("api", {
listTemplates: () => ipcRenderer.invoke("template:list"),
saveTemplate: (data) => ipcRenderer.invoke("template:save", data),
updateTemplate: (id, data) => ipcRenderer.invoke("template:update", id, data),
deleteTemplate: (id) => ipcRenderer.invoke("template:delete", id),
parseTemplate: (filePath) => ipcRenderer.invoke("template:parse", filePath),
selectFile: (filters) => ipcRenderer.invoke("file:select", filters),
selectDirectory: () => ipcRenderer.invoke("file:selectDir"),
openDirectory: (dirPath) => ipcRenderer.invoke("file:openDir", dirPath),
copyFileToAppData: (srcPath, templateId) =>
ipcRenderer.invoke("file:copyToAppData", srcPath, templateId),
generate: (req) => ipcRenderer.invoke("generate:run", req),
// 仅测试环境使用:注入下一次对话框返回值
mockDialog: (p) => ipcRenderer.invoke("test:mockDialog", p),
});