40 lines
2.4 KiB
TypeScript
40 lines
2.4 KiB
TypeScript
import { readFile } from "node:fs/promises";
|
|
import { describe, expect, it } from "vitest";
|
|
import type { Catalog } from "../../shared/types";
|
|
import { hasCapability } from "../engine/registry";
|
|
import "./index";
|
|
|
|
const planned = [
|
|
"logic_control_if_else", "logic_control_count_for", "logic_control_array_for_v3", "logic_control_while",
|
|
"logic_control_try_catch", "logic_control_var", "logic_control_break_for", "logic_control_next_for",
|
|
"logic_control_stop", "Trigger.Manual", "Trigger.FileArrival",
|
|
"WebBrowser_CreateV3", "WebBrowser_GoUrl", "WebBrowser_Switch", "Element_Click_V6", "Element_SetValue_V6",
|
|
"Element_GetText_V5", "Element_Exists", "Element_SelectOperation_v1", "WebBrowser_RunJsInIeByTitle", "WebBrowser_SaveAs",
|
|
"File_Read", "File_Write", "File_Copy", "File_File_Move", "File_DeleteFile", "File_Rename",
|
|
"File_FileExists", "File_GetFileList", "File_MakeDir", "File_CompressFile", "File_DecompressFile", "File_GetFileInfo",
|
|
"Excel_Cs_NewV5", "Excel_Cs_OpenV4", "Excel_Cs_ReadContentV2", "Excel_Cs_WriteCell", "Excel_Cs_WriteRange",
|
|
"Excel_Cs_ReadRangeV2", "Excel_Save", "Excel_Cs_SaveAs", "Excel_GetSheetsName", "Excel_Cs_Insert", "Excel_Cs_Rename", "CSV_Read", "CSV_Write",
|
|
"Keyboard_Send_V1", "Keyboard_PressNew", "Mouse_Click", "Mouse_MoveTo", "Mouse_DragTo", "Mouse_RollTo",
|
|
"Window_SetActive", "Window_GetActive", "Window_WindowExists", "Window_CloseWindow", "App_Run",
|
|
"Clipboard_GetText", "Clipboard_SetText", "Dialog_Notice", "Dialog_MsgBox", "System_ExecuteCommand",
|
|
"Http_Get", "Http_Post", "Mail_Send", "Mail_UnionSend",
|
|
"PDF_GetPdfPageNum", "PDF_GetPdfText", "PDF_ConcatPdf", "Word_New", "Word_Write",
|
|
"Image_Screenshot", "Image_Find", "Image_Click"
|
|
];
|
|
|
|
const runtimeContainers = new Set([
|
|
"logic_control_if_else", "logic_control_count_for", "logic_control_array_for_v3", "logic_control_dictionary_for_v1",
|
|
"logic_control_while", "infinite_loop", "logic_control_try_catch"
|
|
]);
|
|
|
|
describe("planned capability audit", () => {
|
|
it("keeps every planned representative capability executable", async () => {
|
|
const catalog = JSON.parse(await readFile("resources/catalog.json", "utf8")) as Catalog;
|
|
const missing = planned.filter((id) => {
|
|
const component = catalog.components.find((item) => item.id === id);
|
|
return !component || (!hasCapability(component.id) && !hasCapability(component.functionName) && !runtimeContainers.has(component.id));
|
|
});
|
|
expect(missing).toEqual([]);
|
|
});
|
|
});
|