38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { splitMediaFromOutput } from "./parse.js";
|
|
|
|
describe("splitMediaFromOutput", () => {
|
|
it("detects audio_as_voice tag and strips it", () => {
|
|
const result = splitMediaFromOutput("Hello [[audio_as_voice]] world");
|
|
expect(result.audioAsVoice).toBe(true);
|
|
expect(result.text).toBe("Hello world");
|
|
});
|
|
|
|
it("captures media paths with spaces", () => {
|
|
const result = splitMediaFromOutput("MEDIA:/Users/pete/My File.png");
|
|
expect(result.mediaUrls).toEqual(["/Users/pete/My File.png"]);
|
|
expect(result.text).toBe("");
|
|
});
|
|
|
|
it("captures quoted media paths with spaces", () => {
|
|
const result = splitMediaFromOutput('MEDIA:"/Users/pete/My File.png"');
|
|
expect(result.mediaUrls).toEqual(["/Users/pete/My File.png"]);
|
|
expect(result.text).toBe("");
|
|
});
|
|
|
|
it("captures tilde media paths with spaces", () => {
|
|
const result = splitMediaFromOutput("MEDIA:~/Pictures/My File.png");
|
|
expect(result.mediaUrls).toEqual(["~/Pictures/My File.png"]);
|
|
expect(result.text).toBe("");
|
|
});
|
|
|
|
it("keeps audio_as_voice detection stable across calls", () => {
|
|
const input = "Hello [[audio_as_voice]]";
|
|
const first = splitMediaFromOutput(input);
|
|
const second = splitMediaFromOutput(input);
|
|
expect(first.audioAsVoice).toBe(true);
|
|
expect(second.audioAsVoice).toBe(true);
|
|
});
|
|
});
|