Spaces:
Paused
Paused
| require("../../web/scripts/api"); | |
| const fs = require("fs"); | |
| const path = require("path"); | |
| function* walkSync(dir) { | |
| const files = fs.readdirSync(dir, { withFileTypes: true }); | |
| for (const file of files) { | |
| if (file.isDirectory()) { | |
| yield* walkSync(path.join(dir, file.name)); | |
| } else { | |
| yield path.join(dir, file.name); | |
| } | |
| } | |
| } | |
| /** | |
| * @typedef { import("../../web/types/comfy").ComfyObjectInfo } ComfyObjectInfo | |
| */ | |
| /** | |
| * @param { { mockExtensions?: string[], mockNodeDefs?: Record<string, ComfyObjectInfo> } } config | |
| */ | |
| export function mockApi({ mockExtensions, mockNodeDefs } = {}) { | |
| if (!mockExtensions) { | |
| mockExtensions = Array.from(walkSync(path.resolve("../web/extensions/core"))) | |
| .filter((x) => x.endsWith(".js")) | |
| .map((x) => path.relative(path.resolve("../web"), x)); | |
| } | |
| if (!mockNodeDefs) { | |
| mockNodeDefs = JSON.parse(fs.readFileSync(path.resolve("./data/object_info.json"))); | |
| } | |
| jest.mock("../../web/scripts/api", () => ({ | |
| get api() { | |
| return { | |
| addEventListener: jest.fn(), | |
| getSystemStats: jest.fn(), | |
| getExtensions: jest.fn(() => mockExtensions), | |
| getNodeDefs: jest.fn(() => mockNodeDefs), | |
| init: jest.fn(), | |
| apiURL: jest.fn((x) => "../../web/" + x), | |
| }; | |
| }, | |
| })); | |
| } | |