@@ -21,4 +21,64 @@ defmodule Reencodarr.AnalyzerTest do
2121 end
2222 end
2323 end
24+
25+ describe "has_av1_codec?/1" do
26+ test "returns true when video_codecs contains av1" do
27+ assert Broadway . has_av1_codec? ( % { video_codecs: [ "V_AV1" ] } ) == true
28+ end
29+
30+ test "returns true when video_codecs contains AV1" do
31+ assert Broadway . has_av1_codec? ( % { video_codecs: [ "AV1" ] } ) == true
32+ end
33+
34+ test "returns false when video_codecs does not contain av1" do
35+ assert Broadway . has_av1_codec? ( % { video_codecs: [ "h264" , "hevc" ] } ) == false
36+ end
37+
38+ test "returns false when video_codecs is nil" do
39+ assert Broadway . has_av1_codec? ( % { video_codecs: nil } ) == false
40+ end
41+
42+ test "returns false for struct without video_codecs key" do
43+ assert Broadway . has_av1_codec? ( % { } ) == false
44+ end
45+ end
46+
47+ describe "has_av1_in_filename?/1" do
48+ test "returns true when filename contains av1" do
49+ assert Broadway . has_av1_in_filename? ( % { path: "/media/video.av1.mkv" } ) == true
50+ end
51+
52+ test "returns true when filename contains AV1 (uppercase)" do
53+ assert Broadway . has_av1_in_filename? ( % { path: "/media/video.AV1.mkv" } ) == true
54+ end
55+
56+ test "returns false when filename does not contain av1" do
57+ assert Broadway . has_av1_in_filename? ( % { path: "/media/video.h264.mkv" } ) == false
58+ end
59+ end
60+
61+ describe "has_opus_codec?/1" do
62+ test "returns true when audio_codecs contains opus" do
63+ assert Broadway . has_opus_codec? ( % { audio_codecs: [ "opus" ] } ) == true
64+ end
65+
66+ test "returns false when audio_codecs does not contain opus" do
67+ assert Broadway . has_opus_codec? ( % { audio_codecs: [ "aac" , "ac3" ] } ) == false
68+ end
69+
70+ test "returns false for non-list audio_codecs" do
71+ assert Broadway . has_opus_codec? ( % { audio_codecs: nil } ) == false
72+ end
73+ end
74+
75+ describe "has_opus_in_filename?/1" do
76+ test "returns true when filename contains opus" do
77+ assert Broadway . has_opus_in_filename? ( % { path: "/media/video.opus.mkv" } ) == true
78+ end
79+
80+ test "returns false when filename does not contain opus" do
81+ assert Broadway . has_opus_in_filename? ( % { path: "/media/video.aac.mkv" } ) == false
82+ end
83+ end
2484end
0 commit comments