Skip to content

Commit

Permalink
Add various specs for family mutations (#1544)
Browse files Browse the repository at this point in the history
  • Loading branch information
njaeggi authored and TheWalkingLeek committed Feb 11, 2025
1 parent 68777fe commit 9daec5d
Showing 1 changed file with 40 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,15 @@ def create_role!(role_class, group, beitragskategorie: "family", **opts)
.to change { original_role.reload.end_on }.to(Date.yesterday)
end

it "destroys exsitisting stammsektion role when starting today" do
stammsektion_role.update!(start_on: Time.zone.today, end_on: 5.days.from_now)
original_role = stammsektion_role

expect { mutation.join!(reference_person) }
.to change { Role.count }.by(1)
expect { original_role.reload }.to raise_error(ActiveRecord::RecordNotFound)
end

it "creates new family stammsektion role per today" do
# reference_person has stammsektion in bluemlisalp_mitglieder
expect { mutation.join!(reference_person) }
Expand Down Expand Up @@ -113,6 +122,17 @@ def create_role!(role_class, group, beitragskategorie: "family", **opts)
expect { mutation.join!(reference_person) }
.to raise_error("not allowed with terminated sac membership")
end

it "destroys new family stammsektion role when joining and leaving the family in the same day" do
expect { mutation.join!(reference_person) }
.to change { stammsektion_role.id }

stammsektion_role_in_family = stammsektion_role

expect { mutation.leave! }
.to change { stammsektion_role.id }
expect { stammsektion_role_in_family.reload }.to raise_error(ActiveRecord::RecordNotFound)
end
end

context "as a non-member person" do
Expand Down Expand Up @@ -150,6 +170,15 @@ def create_role!(role_class, group, beitragskategorie: "family", **opts)
.to change { original_role.reload.end_on }.to(Date.current.yesterday)
end

it "ends exististing family stammsektion role when start on is today" do
stammsektion_role.update!(start_on: Time.zone.today, end_on: 5.days.from_now)
original_role = stammsektion_role

expect { mutation.join!(reference_person) }
.to change { stammsektion_role.id }
expect { original_role.reload }.to raise_error(ActiveRecord::RecordNotFound)
end

it "creates new non-family stammsektion role per today" do
expect { mutation.leave! }
.to(change { stammsektion_role.id })
Expand Down Expand Up @@ -206,5 +235,16 @@ def create_role!(role_class, group, beitragskategorie: "family", **opts)
mutation = described_class.new(people(:familienmitglied))
expect { mutation.leave! }.not_to raise_error
end

it "destroys new stammsektion role when leaving and joining new family in the same day" do
expect { mutation.leave! }
.to change { stammsektion_role.id }

stammsektion_role_after_family = stammsektion_role

expect { mutation.join!(reference_person) }
.to change { stammsektion_role.id }
expect { stammsektion_role_after_family.reload }.to raise_error(ActiveRecord::RecordNotFound)
end
end
end

0 comments on commit 9daec5d

Please sign in to comment.