Add tests for BarcodeScan.Result
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
defmodule MusicLibrary.BarcodeScan.ResultTest do
|
||||
use ExUnit.Case, async: true
|
||||
|
||||
alias MusicLibrary.BarcodeScan.Result
|
||||
alias MusicBrainz.{ReleaseGroupSearchResult, ReleaseSearchResult}
|
||||
|
||||
@release_group %ReleaseGroupSearchResult{
|
||||
id: "123",
|
||||
type: :album,
|
||||
title: "Test Release Group",
|
||||
artists: ["Test Artist"],
|
||||
release: "2021-01-01"
|
||||
}
|
||||
|
||||
@release %ReleaseSearchResult{
|
||||
id: "123",
|
||||
title: "Test Release",
|
||||
release_group: @release_group,
|
||||
artists: ["Test Artist"],
|
||||
date: "2021-01-01",
|
||||
barcode: "1234567890",
|
||||
media: [
|
||||
%{
|
||||
format: "CD",
|
||||
track_count: 10,
|
||||
disc_count: 1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
describe "new/2" do
|
||||
test "creates a new result with status :new" do
|
||||
number = "123456789"
|
||||
result = Result.new(number, @release)
|
||||
|
||||
assert result.status == :new
|
||||
assert result.number == number
|
||||
assert result.release == @release
|
||||
assert result.record_id == nil
|
||||
end
|
||||
end
|
||||
|
||||
describe "wishlisted/3" do
|
||||
test "creates a result with status :wishlisted" do
|
||||
number = "123456789"
|
||||
record_id = "record-123"
|
||||
result = Result.wishlisted(number, record_id, @release)
|
||||
|
||||
assert result.status == :wishlisted
|
||||
assert result.number == number
|
||||
assert result.record_id == record_id
|
||||
assert result.release == @release
|
||||
end
|
||||
end
|
||||
|
||||
describe "collected/3" do
|
||||
test "creates a result with status :collected" do
|
||||
number = "123456789"
|
||||
record_id = "record-123"
|
||||
result = Result.collected(number, record_id, @release)
|
||||
|
||||
assert result.status == :collected
|
||||
assert result.number == number
|
||||
assert result.record_id == record_id
|
||||
assert result.release == @release
|
||||
end
|
||||
end
|
||||
|
||||
describe "not_found/1" do
|
||||
test "creates a result with status :not_found" do
|
||||
number = "123456789"
|
||||
result = Result.not_found(number)
|
||||
|
||||
assert result.status == :not_found
|
||||
assert result.number == number
|
||||
assert result.release == nil
|
||||
assert result.record_id == nil
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user