This commit is contained in:
@@ -2,7 +2,7 @@ const assert = require('node:assert/strict');
|
||||
const test = require('node:test');
|
||||
|
||||
test('model response progress forwards each downloaded chunk and preserves the response', async () => {
|
||||
const {trackModelDownload} = await import('../piper-download-progress.mjs');
|
||||
const {trackDownloadProgress} = await import('../piper-download-progress.mjs');
|
||||
const source = new ReadableStream({
|
||||
start(controller) {
|
||||
controller.enqueue(new Uint8Array([1, 2]));
|
||||
@@ -12,22 +12,27 @@ test('model response progress forwards each downloaded chunk and preserves the r
|
||||
});
|
||||
const response = new Response(source, {headers: {'content-length': '5'}});
|
||||
const messages = [];
|
||||
const tracked = trackModelDownload(response, {id: 7, postMessage: message => messages.push(message)});
|
||||
const tracked = trackDownloadProgress(response, {id: 7, postMessage: message => messages.push(message)});
|
||||
|
||||
assert.deepEqual([...new Uint8Array(await tracked.arrayBuffer())], [1, 2, 3, 4, 5]);
|
||||
assert.deepEqual(messages.map(message => message.progress), [
|
||||
{loaded: 2, total: 5},
|
||||
{loaded: 5, total: 5},
|
||||
{asset: 'model', loaded: 2, total: 5},
|
||||
{asset: 'model', loaded: 5, total: 5},
|
||||
]);
|
||||
assert.ok(messages.every(message => message.id === 7 && message.type === 'progress'));
|
||||
});
|
||||
|
||||
test('model response progress works when content length is absent', async () => {
|
||||
const {trackModelDownload} = await import('../piper-download-progress.mjs');
|
||||
const {trackDownloadProgress} = await import('../piper-download-progress.mjs');
|
||||
const source = new Response(new Uint8Array([1, 2, 3]));
|
||||
const messages = [];
|
||||
const tracked = trackModelDownload(source, {id: 9, postMessage: message => messages.push(message)});
|
||||
const tracked = trackDownloadProgress(source, {
|
||||
id: 9,
|
||||
asset: 'runtime',
|
||||
file: 'runtime.wasm',
|
||||
postMessage: message => messages.push(message),
|
||||
});
|
||||
|
||||
assert.equal((await tracked.arrayBuffer()).byteLength, 3);
|
||||
assert.deepEqual(messages.map(message => message.progress), [{loaded: 3, total: 0}]);
|
||||
assert.deepEqual(messages.map(message => message.progress), [{asset: 'runtime', file: 'runtime.wasm', loaded: 3, total: 0}]);
|
||||
});
|
||||
|
||||
@@ -261,6 +261,8 @@ test('Piper model download progress is reported as a bounded percentage', async
|
||||
await new Promise(resolve => setImmediate(resolve));
|
||||
h.piperProgressCallbacks[0]({stage: 'loading-model'});
|
||||
assert.match(h.states.at(-1).message, /Ansluter till servern/);
|
||||
h.piperProgressCallbacks[0]({asset: 'runtime', file: 'ort-wasm-simd-threaded.wasm', loaded: 5 * 1024 * 1024, total: 10 * 1024 * 1024});
|
||||
assert.match(h.states.at(-1).message, /ort-wasm-simd-threaded\.wasm: 50 procent/);
|
||||
h.piperProgressCallbacks[0]({loaded: 31_500_000, total: 63_000_000});
|
||||
assert.equal(h.states.at(-1).state, 'PROCESSING');
|
||||
assert.match(h.states.at(-1).message, /50 procent/);
|
||||
|
||||
Reference in New Issue
Block a user