Initial Commit
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import { CodecRegistry } from "@suaveplan/audio-codecs/registry/registry";
|
||||
import { describe, expect, it } from "@suaveplan/testing/runner";
|
||||
import { FfmpegWasmCodec, register } from "../src/index.js";
|
||||
import {
|
||||
buildPcmBytes,
|
||||
FakeWorker,
|
||||
successScript,
|
||||
} from "./fixtures/fake-worker.js";
|
||||
|
||||
describe("integration: codec wired through CodecRegistry", () => {
|
||||
it("register installs and registry.detect finds the codec", {
|
||||
timeout: 30000,
|
||||
}, () => {
|
||||
const registry = new CodecRegistry();
|
||||
const codec = register(registry, {
|
||||
coreLoader: () => Promise.resolve({}),
|
||||
workerFactory: () => new FakeWorker() as unknown as Worker,
|
||||
});
|
||||
expect(codec).toBeInstanceOf(FfmpegWasmCodec);
|
||||
const wav = new Uint8Array(44);
|
||||
wav[0] = 0x52;
|
||||
wav[1] = 0x49;
|
||||
wav[2] = 0x46;
|
||||
wav[3] = 0x46;
|
||||
expect(registry.detect(wav)).toBe("ffmpeg-wasm");
|
||||
});
|
||||
|
||||
it("registry.decode produces an AudioDocument", {
|
||||
timeout: 30000,
|
||||
}, async () => {
|
||||
const registry = new CodecRegistry();
|
||||
const worker = new FakeWorker();
|
||||
worker.script.push(...successScript(buildPcmBytes(64, 2)));
|
||||
register(registry, {
|
||||
coreLoader: () => Promise.resolve({}),
|
||||
workerFactory: () => worker as unknown as Worker,
|
||||
});
|
||||
const wav = new Uint8Array(44);
|
||||
wav[0] = 0x52;
|
||||
wav[1] = 0x49;
|
||||
wav[2] = 0x46;
|
||||
wav[3] = 0x46;
|
||||
const doc = await registry.decode(wav);
|
||||
expect(doc.channels).toBe(2);
|
||||
expect(doc.sampleRate).toBeGreaterThan(0);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user