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}); } });