Update member UI and related app changes

This commit is contained in:
Marcel Peterkau
2026-06-26 21:57:11 +02:00
parent 833075f0dc
commit 30b6d253b2
18 changed files with 490 additions and 84 deletions
+78
View File
@@ -91,6 +91,84 @@ def test_housekeeper_claim_actions_are_idempotent(tmp_path) -> None:
assert state["last_completed_run"] == "2026-04-15:000002"
def test_housekeeper_creates_membership_claims_retroactively_since_entry(tmp_path) -> None:
repository = MemberRepository(tmp_path)
repository.initialize()
member = repository.create_member(first_name="Retro", last_name="Claims", birth_date="1990-01-01")
member.status = "active"
member.accepted_at = "2024-04-15"
member.membership_started_at = "2024-04-15"
repository.save_member(member)
settings = housekeeper_module.HousekeeperSettings.from_values(
birthday_days_before=0,
birthday_days_after=0,
anniversary_days_before=0,
anniversary_days_after=0,
anniversary_intervals="1Y",
retroactive_claims=True,
)
Housekeeper(repository, settings).run(today=date(2026, 6, 21))
claims = repository.get_contributions(member.member_id).claims
claims_by_key = {claim["claim_key"]: claim for claim in claims}
assert set(claims_by_key) == {
"admission-fee",
"membership-fee:2024:annual",
"membership-fee:2025:annual",
"membership-fee:2026:annual",
}
assert claims_by_key["membership-fee:2024:annual"]["amount"] == "150.00"
def test_housekeeper_uses_pre_2022_contribution_amounts_for_legacy_years(tmp_path) -> None:
repository = MemberRepository(tmp_path)
repository.initialize()
member = repository.create_member(first_name="Legacy", last_name="Rates", birth_date="1990-01-01")
member.status = "active"
member.accepted_at = "2021-04-15"
member.membership_started_at = "2021-04-15"
repository.save_member(member)
settings = housekeeper_module.HousekeeperSettings.from_values(
birthday_days_before=0,
birthday_days_after=0,
anniversary_days_before=0,
anniversary_days_after=0,
anniversary_intervals="1Y",
retroactive_claims=True,
)
Housekeeper(repository, settings).run(today=date(2022, 6, 21))
claims = repository.get_contributions(member.member_id).claims
claims_by_key = {claim["claim_key"]: claim for claim in claims}
assert claims_by_key["membership-fee:2021:annual"]["amount"] == "90.00"
assert claims_by_key["membership-fee:2022:annual"]["amount"] == "150.00"
def test_housekeeper_does_not_create_retroactive_membership_claims_by_default(tmp_path) -> None:
repository = MemberRepository(tmp_path)
repository.initialize()
member = repository.create_member(first_name="Current", last_name="Only", birth_date="1990-01-01")
member.status = "active"
member.accepted_at = "2024-04-15"
member.membership_started_at = "2024-04-15"
repository.save_member(member)
Housekeeper(repository).run(today=date(2026, 6, 21))
claim_keys = {claim["claim_key"] for claim in repository.get_contributions(member.member_id).claims}
assert claim_keys == {
"admission-fee",
"membership-fee:2026:annual",
}
def test_housekeeper_resolves_tasks_not_seen_in_current_run(tmp_path) -> None:
repository = MemberRepository(tmp_path)
repository.initialize()