Relax assertions on colors

As dominant colors are not stable on different environments
This commit is contained in:
Claudio Ortolina
2026-03-03 16:13:23 +00:00
parent 6d451481b7
commit 7ec3e68e58
3 changed files with 23 additions and 11 deletions
@@ -1,19 +1,23 @@
defmodule MusicLibrary.Colors.KMeansExtractorTest do
use ExUnit.Case
import MusicLibrary.ColorHelpers, only: [color_hex?: 1]
alias MusicLibrary.Colors.KMeansExtractor
@image_data MusicLibrary.Fixtures.Records.marbles_cover_data()
describe "extract_dominant_colors/1" do
test "extracts 5 colors by default" do
assert {:ok, ["#101111", "#d3b696", "#836246", "#5d412d", "#3c2e22"]} ==
KMeansExtractor.extract_dominant_colors(@image_data)
assert {:ok, colors} = KMeansExtractor.extract_dominant_colors(@image_data)
assert length(colors) == 5
assert Enum.all?(colors, &color_hex?/1)
end
test "extracts custom number of colors" do
assert {:ok, ["#101111", "#d3b696", "#836246"]} ==
KMeansExtractor.extract_dominant_colors(@image_data, 3)
assert {:ok, colors} = KMeansExtractor.extract_dominant_colors(@image_data, 3)
assert length(colors) == 3
assert Enum.all?(colors, &color_hex?/1)
end
end
end
+3 -7
View File
@@ -3,6 +3,7 @@ defmodule MusicLibrary.RecordsTest do
import MusicBrainz.Fixtures.Release
import MusicBrainz.Fixtures.ReleaseGroup
import MusicLibrary.ColorHelpers, only: [color_hex?: 1]
import MusicLibrary.Fixtures.Records
alias MusicLibrary.Assets
@@ -46,13 +47,8 @@ defmodule MusicLibrary.RecordsTest do
assert record.cover_hash ==
"599407DDF69907D4A60FE13CCAA824D25CF08DC124FD6AA3E8E7ECD98C885FFE"
assert record.dominant_colors == [
"#101111",
"#d3b696",
"#836246",
"#5d412d",
"#3c2e22"
]
assert length(record.dominant_colors) == 5
assert Enum.all?(record.dominant_colors, &color_hex?/1)
end
test "it queues a task to retrieve artist info data" do
+12
View File
@@ -0,0 +1,12 @@
defmodule MusicLibrary.ColorHelpers do
@doc """
Returns true if the given string is a valid lowercase hex color code.
iex> MusicLibrary.ColorHelpers.color_hex?("#d3b696")
true
iex> MusicLibrary.ColorHelpers.color_hex?("not a color")
false
"""
def color_hex?(value), do: String.match?(value, ~r/^#[0-9a-f]{6}$/)
end