New Captcha Package added
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
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");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user