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
62 lines
1.8 KiB
TypeScript
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);
|
|
});
|
|
});
|