import { describe, expect, it } from "vitest"; import { announcementAudioQueue } from "./useAudioAnnouncements"; const inlineAudio = (source: string) => source.startsWith("data:audio/wav;base64,"); describe("announcementAudioQueue", () => { it("忽略项目名并把单号码播报素材重复三遍", () => { const queue = announcementAudioQueue(["东门观光车,请零零零一六号,前往入口。"]); const once = queue.slice(0, 9); expect(once).toHaveLength(9); expect(once.every(inlineAudio)).toBe(true); expect(once[1]).toBe(once[2]); expect(once[2]).toBe(once[3]); expect(queue).toEqual([...once, ...once, ...once]); }); it("支持连续号码范围", () => { const queue = announcementAudioQueue(["请一七号至一九号,前往入口。"]); expect(queue.slice(0, 9).every(inlineAudio)).toBe(true); expect(queue[1]).not.toBe(queue[2]); expect(queue[3]).not.toBe(queue[4]); }); it("音频素材不使用独立 HTTP 路径", () => { const queue = announcementAudioQueue(["请一号,前往入口。"]); expect(queue).not.toContain("/audio/queue-voice/please.wav"); expect(queue.every(inlineAudio)).toBe(true); }); });