33 lines
1.6 KiB
JavaScript
33 lines
1.6 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
|
|
test('ONNX Runtime receives an absolute same-origin base URL', async () => {
|
|
const {createOnnxWasmPaths} = await import('../piper-onnx-config.mjs');
|
|
const wasmPaths = createOnnxWasmPaths('https://ai-spel.k3s.k0.nu');
|
|
assert.equal(wasmPaths, 'https://ai-spel.k3s.k0.nu/static/piper-wasm-v1/onnx/');
|
|
assert.equal(new URL('ort-wasm-simd-threaded.mjs', wasmPaths).href,
|
|
'https://ai-spel.k3s.k0.nu/static/piper-wasm-v1/onnx/ort-wasm-simd-threaded.mjs');
|
|
});
|
|
|
|
test('ONNX Runtime base URL rejects an invalid worker origin', async () => {
|
|
const {createOnnxWasmPaths} = await import('../piper-onnx-config.mjs');
|
|
assert.throws(() => createOnnxWasmPaths('undefined'), TypeError);
|
|
});
|
|
|
|
test('Piper and ONNX Runtime stay on one thread even though Piper overwrites ONNX settings', async () => {
|
|
const {configureOnnxRuntime} = await import('../piper-onnx-config.mjs');
|
|
const navigatorObject = {hardwareConcurrency: 8};
|
|
const previousNavigator = globalThis.navigator;
|
|
Object.defineProperty(globalThis, 'navigator', {configurable: true, value: navigatorObject});
|
|
const runtime = {env: {wasm: {numThreads: 0, initTimeout: 0}}};
|
|
try {
|
|
configureOnnxRuntime(runtime);
|
|
assert.equal(navigatorObject.hardwareConcurrency, 1);
|
|
assert.equal(runtime.env.wasm.numThreads, 1);
|
|
assert.equal(runtime.env.wasm.initTimeout, 60000);
|
|
} finally {
|
|
if (previousNavigator === undefined) delete globalThis.navigator;
|
|
else Object.defineProperty(globalThis, 'navigator', {configurable: true, value: previousNavigator});
|
|
}
|
|
});
|