Files
wehub-resource-sync e904b667c6
Build/Publish Develop Docs / deploy (push) Failing after 1s
PaddleOCR Code Style Check / check-code-style (push) Failing after 1s
PaddleOCR PR Tests GPU / detect-changes (push) Failing after 1s
PaddleOCR PR Tests / detect-changes (push) Failing after 1s
PaddleOCR PR Tests GPU / test-pr-gpu (push) Has been cancelled
PaddleOCR PR Tests / test-pr (push) Has been cancelled
PaddleOCR PR Tests GPU / test-pr-gpu-impl (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.13) (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.8) (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.9) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:59:26 +08:00

62 lines
1.8 KiB
TypeScript

import { afterEach, describe, expect, it, vi } from "vitest";
async function loadOpenCvModule(mockedDefault) {
vi.resetModules();
vi.doMock("@techstark/opencv-js", () => ({
__esModule: true,
default: mockedDefault
}));
return import("../src/runtime/opencv");
}
afterEach(() => {
vi.resetModules();
vi.doUnmock("@techstark/opencv-js");
});
describe("runtime/opencv", () => {
it("returns OpenCV immediately when the module already exposes Mat", async () => {
const cv = { Mat() {} };
const { initOpenCvRuntime } = await loadOpenCvModule(cv);
await expect(initOpenCvRuntime()).resolves.toEqual({ cv });
});
it("awaits promised OpenCV modules", async () => {
const cv = { Mat() {} };
const { initOpenCvRuntime } = await loadOpenCvModule(Promise.resolve(cv));
await expect(initOpenCvRuntime()).resolves.toEqual({ cv });
});
it("awaits callback-based OpenCV initialization", async () => {
const cv = {};
Object.defineProperty(cv, "onRuntimeInitialized", {
set(callback) {
callback();
}
});
const { initOpenCvRuntime } = await loadOpenCvModule(cv);
await expect(initOpenCvRuntime()).resolves.toEqual({ cv });
});
it("caches successful initialization results", async () => {
const cv = { Mat() {} };
const { initOpenCvRuntime } = await loadOpenCvModule(cv);
const first = await initOpenCvRuntime();
const second = await initOpenCvRuntime();
expect(first).toBe(second);
});
it("re-exports initOpenCvRuntime from the runtime index", async () => {
const cv = { Mat() {} };
const runtimeModule = await loadOpenCvModule(cv);
const runtimeIndex = await import("../src/runtime/index");
expect(runtimeIndex.initOpenCvRuntime).toBe(runtimeModule.initOpenCvRuntime);
});
});