Seeds split, Credo strict, and member/settings UI polish #458

Merged
moritz merged 18 commits from feat/seeds into main 2026-03-04 20:19:51 +01:00
Showing only changes of commit 6987733707 - Show all commits

View file

@ -8,7 +8,9 @@ defmodule Mv.Membership.MembersPDFTest do
- Generates valid PDF binary (starts with "%PDF")
- Handles errors gracefully
"""
use ExUnit.Case, async: true
# async: false so tests that manipulate the template file (e.g. "returns error when template file is missing")
# do not run in parallel and cannot leave the template removed on failure
use ExUnit.Case, async: false
alias Mv.Config
alias Mv.Membership.MembersPDF
@ -162,25 +164,25 @@ defmodule Mv.Membership.MembersPDFTest do
end
test "returns error when template file is missing" do
# Temporarily rename template to simulate missing file
template_path =
Path.join(Application.app_dir(:mv, "priv"), "pdf_templates/members_export.typ")
original_content = File.read!(template_path)
File.rm(template_path)
export_data = %{
columns: [%{key: "first_name", kind: :member_field, label: "Vorname"}],
rows: [["Max"]],
meta: %{generated_at: "2024-01-15T14:30:00Z", member_count: 1}
}
try do
export_data = %{
columns: [%{key: "first_name", kind: :member_field, label: "Vorname"}],
rows: [["Max"]],
meta: %{generated_at: "2024-01-15T14:30:00Z", member_count: 1}
}
result = MembersPDF.render(export_data)
result = MembersPDF.render(export_data)
assert {:error, {:template_not_found, _reason}} = result
# Restore template
File.write!(template_path, original_content)
assert {:error, {:template_not_found, _reason}} = result
after
File.write!(template_path, original_content)
end
end
test "handles empty rows gracefully" do