mirror of
https://git.hiabuto.net/C3MA/CCMA.git
synced 2026-08-24 22:45:18 +02:00
feat: add per-member payment frequencies
This commit is contained in:
@@ -40,9 +40,32 @@ def test_repository_creates_transparent_member_record(tmp_path) -> None:
|
||||
assert raw["person"]["nickname"] == "Enchantress"
|
||||
assert raw["schema_version"] == 1
|
||||
assert raw["membership"]["ended_at"] == ""
|
||||
assert raw["contribution_profile"]["payment_frequency"] == "semiannual"
|
||||
assert raw["content_hash"]
|
||||
|
||||
|
||||
def test_existing_member_without_payment_frequency_defaults_to_semiannual(tmp_path) -> None:
|
||||
repository = MemberRepository(tmp_path)
|
||||
repository.initialize()
|
||||
member = repository.create_member(first_name="Legacy", last_name="Member")
|
||||
member_path = repository.members_root / member.member_id / "member.json"
|
||||
raw = json.loads(member_path.read_text(encoding="utf-8"))
|
||||
raw["contribution_profile"].pop("payment_frequency")
|
||||
member_path.write_text(json.dumps(raw), encoding="utf-8")
|
||||
|
||||
assert repository.get_member(member.member_id).payment_frequency == "semiannual"
|
||||
|
||||
|
||||
def test_repository_rejects_unknown_payment_frequency(tmp_path) -> None:
|
||||
repository = MemberRepository(tmp_path)
|
||||
repository.initialize()
|
||||
member = repository.create_member(first_name="Invalid", last_name="Frequency")
|
||||
member.payment_frequency = "weekly"
|
||||
|
||||
with pytest.raises(RepositoryError, match="Ungültige Zahlweise"):
|
||||
repository.save_member(member)
|
||||
|
||||
|
||||
def test_search_matches_name_email_number_and_german_birth_date(tmp_path) -> None:
|
||||
repository = MemberRepository(tmp_path)
|
||||
repository.initialize()
|
||||
|
||||
Reference in New Issue
Block a user