Skip to content

Commit 7d37e93

Browse files
committed
test: add codec detection, av1 filename, opus tests in analyzer; fix codec case
1 parent 2d5ab20 commit 7d37e93

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

test/reencodarr/analyzer_test.exs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
2484
end

0 commit comments

Comments
 (0)