import { describe, expect, test } from "bun:test"; import { type ProbedStream, verifyStreamMetadata } from "../verify"; type ExpectedStream = Parameters[0][number]; function expected( o: Partial & Pick, ): ExpectedStream { return { id: o.id, item_id: 1, stream_id: o.stream_id, plan_id: 1, action: "keep", target_index: 0, custom_title: null, custom_language: null, transcode_codec: null, codec: null, profile: null, language: null, title: null, is_default: 0, is_forced: 0, is_hearing_impaired: 0, channels: null, channel_layout: null, bit_rate: null, sample_rate: null, bit_depth: null, width: null, height: null, ...o, }; } function probed(o: Partial & Pick): ProbedStream { return { codec: null, language: null, title: null, isDefault: 0, ...o, }; } describe("verifyStreamMetadata", () => { test("detects dirty video title metadata", () => { const mismatch = verifyStreamMetadata( [expected({ id: 1, stream_id: 1, type: "Video", stream_index: 0, codec: "h264", width: 1920, height: 1080 })], [probed({ type: "Video", codec: "h264", title: "Movie.Name.1080p.ADS-GRP" })], ); expect(mismatch?.reason).toContain("video track 0: title"); expect(mismatch?.reason).toContain("1080p - H.264"); }); test("detects dirty audio title metadata", () => { const mismatch = verifyStreamMetadata( [ expected({ id: 1, stream_id: 1, type: "Audio", stream_index: 0, codec: "dts", language: "eng", channels: 6, }), ], [probed({ type: "Audio", codec: "dts", language: "eng", title: "English DTS ads", isDefault: 1 })], ); expect(mismatch?.reason).toContain("audio track 0: title"); expect(mismatch?.reason).toContain("ENG - DTS 5.1"); }); test("detects non-canonical language tags and wrong default disposition", () => { const languageMismatch = verifyStreamMetadata( [expected({ id: 1, stream_id: 1, type: "Audio", stream_index: 0, codec: "aac", language: "eng" })], [probed({ type: "Audio", codec: "aac", language: "en", title: "ENG - AAC", isDefault: 1 })], ); expect(languageMismatch?.reason).toContain("language en ≠ expected eng"); const defaultMismatch = verifyStreamMetadata( [expected({ id: 1, stream_id: 1, type: "Audio", stream_index: 0, codec: "aac", language: "eng" })], [probed({ type: "Audio", codec: "aac", language: "eng", title: "ENG - AAC", isDefault: 0 })], ); expect(defaultMismatch?.reason).toContain("default disposition 0 ≠ expected 1"); }); test("returns null when video and audio metadata already match", () => { const mismatch = verifyStreamMetadata( [ expected({ id: 1, stream_id: 1, type: "Video", stream_index: 0, codec: "hevc", width: 3840, height: 2160 }), expected({ id: 2, stream_id: 2, type: "Audio", stream_index: 1, codec: "eac3", language: "eng", channels: 6 }), ], [ probed({ type: "Video", codec: "hevc", title: "2160p - HEVC" }), probed({ type: "Audio", codec: "eac3", language: "eng", title: "ENG - EAC3 5.1", isDefault: 1 }), ], ); expect(mismatch).toBeNull(); }); });