Files
WRNexusJS/packages/captcha/test/audio.test.ts
T
2026-07-27 12:42:18 +05:30

22 lines
909 B
TypeScript

import { describe, expect, test } from "bun:test";
import { join } from "node:path";
import { createAssetAudioRenderer, resolveCaptchaAudioAssetsDir } from "../src/audio/renderer.ts";
const packageRoot = join(import.meta.dir, "..");
const expectedAssets = join(packageRoot, "assets", "audio");
describe("CAPTCHA audio renderer", () => {
test("resolves the packaged audio directory", () => {
expect(resolveCaptchaAudioAssetsDir(expectedAssets)).toBe(expectedAssets);
});
test("renders a playable PCM WAV challenge", async () => {
const renderer = createAssetAudioRenderer({ assetsDir: expectedAssets, gapMs: 100 });
const bytes = await renderer.render(["one", "two", "three"], "en-IN");
expect(bytes.byteLength).toBeGreaterThan(44);
expect(new TextDecoder().decode(bytes.slice(0, 4))).toBe("RIFF");
expect(new TextDecoder().decode(bytes.slice(8, 12))).toBe("WAVE");
});
});