mirror of
https://git.hiabuto.net/C3MA/CCMA.git
synced 2026-07-01 03:04:52 +02:00
Update member UI and related app changes
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user