feat: publish av-tools 0.1.0

This commit is contained in:
2026-07-24 14:58:03 +02:00
commit fcc537b024
254 changed files with 63270 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
import { describe, expect, it } from 'vitest';
import {
getCoreAssetUrls,
resolveFromAppBase,
} from '../../src/ffmpeg/asset-urls';
import { LogBuffer } from '../../src/ffmpeg/log-buffer';
import { normalizeProgress } from '../../src/ffmpeg/progress-parser';
describe('FFmpeg runtime utilities', () => {
it('resolves assets under a nested application base', () => {
expect(
resolveFromAppBase(
'vendor/core.wasm',
'https://tools.example/apps/av/index.html',
'./'
)
).toBe('https://tools.example/apps/av/vendor/core.wasm');
const mt = getCoreAssetUrls(
'multithread',
(path) => `https://tools.example/deep/${path}`
);
expect(mt.coreURL).toContain('/0.12.10/mt/ffmpeg-core.js');
expect(mt.workerURL).toContain('/0.12.10/mt/ffmpeg-core.worker.js');
});
it('clamps experimental progress and removes invalid numbers', () => {
expect(normalizeProgress({ progress: 3, time: -10 })).toEqual({
progress: 1,
time: 0,
});
expect(
normalizeProgress({ progress: Number.NaN, time: Number.NaN })
).toEqual({ progress: 0, time: 0 });
});
it('bounds diagnostic log memory', () => {
const logs = new LogBuffer(2, 100);
logs.append({ type: 'stdout', message: 'one' });
logs.append({ type: 'stderr', message: 'two\u0000' });
logs.append({ type: 'stderr', message: 'three' });
expect(logs.snapshot()).toEqual([
{ type: 'stderr', message: 'two' },
{ type: 'stderr', message: 'three' },
]);
});
});