Skip to content

Commit

Permalink
Revert "Add explicit #start_on/#end_on to Role, remove FutureRole, Ro…
Browse files Browse the repository at this point in the history
…le#delete_on (#82)"

This reverts commit deab9ca.
  • Loading branch information
daniel-illi authored Oct 15, 2024
1 parent 225c159 commit 26f269d
Showing 1 changed file with 53 additions and 60 deletions.
113 changes: 53 additions & 60 deletions spec/domain/people/cleanup_finder_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,52 +5,45 @@
# or later. See the COPYING file at the top-level directory or at
# https://github.com/hitobito/hitobito_youth.

require "spec_helper"
require 'spec_helper'

describe People::CleanupFinder do

let(:people_without_roles) { 3.times.map { Fabricate(:person) } }
let(:people_with_expired_roles) {
3.times.map {
Fabricate(Group::BottomGroup::Member.name.to_sym,
group: groups(:bottom_group_one_one),
start_on: 11.months.ago,
end_on: 10.months.ago).person
}
}
let(:people_with_roles) {
3.times.map {
Fabricate(Group::BottomGroup::Member.name.to_sym,
group: groups(:bottom_group_one_one)).person
}
}
let(:people_with_expired_roles) { 3.times.map { Fabricate(Group::BottomGroup::Member.name.to_sym,
group: groups(:bottom_group_one_one),
created_at: 11.months.ago,
deleted_at: 10.months.ago).person } }
let(:people_with_roles) { 3.times.map { Fabricate(Group::BottomGroup::Member.name.to_sym,
group: groups(:bottom_group_one_one)).person } }

subject { People::CleanupFinder.new.run }
context "#run" do
context "people with expired roles outside cutoff duration" do
context '#run' do
context 'people with expired roles outside cutoff duration' do
let!(:people) { people_with_expired_roles }

before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_roles).and_return(9)
end

context "with people_manageds" do
context 'with people_manageds' do
before do
people.each do |p|
p.manageds = [Fabricate(:person)]
end
end

context "with current_sign_in_at outside cutoff duration" do
context 'with current_sign_in_at outside cutoff duration' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)
people.each { |p| p.update!(current_sign_in_at: 13.months.ago) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end

it "does not find them with event participation in the future" do
it 'does not find them with event participation in the future' do
event = Fabricate(:event, dates: [Event::Date.new(start_at: 10.days.from_now)])
people.each do |p|
Event::Participation.create!(event: event, person: p)
Expand All @@ -59,7 +52,7 @@
expect(subject).to_not match_array(people)
end

it "does not find them with event participation in the past" do
it 'does not find them with event participation in the past' do
event = Fabricate(:event, dates: [Event::Date.new(start_at: 10.days.ago)])
people.each do |p|
Event::Participation.create!(event: event, person: p)
Expand All @@ -69,42 +62,42 @@
end
end

context "with current_sign_in_at nil" do
context 'with current_sign_in_at nil' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)

people.each { |p| p.update!(current_sign_in_at: nil) }
end

it "does not finds them" do
it 'does not finds them' do
expect(subject).to_not match_array(people)
end
end

context "with current_sign_in_at inside cutoff duration" do
context 'with current_sign_in_at inside cutoff duration' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)
people.each { |p| p.update!(current_sign_in_at: 11.months.ago) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end
end
end

context "without people_manageds" do
context "with current_sign_in_at outside cutoff duration" do
context 'without people_manageds' do
context 'with current_sign_in_at outside cutoff duration' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)
people.each { |p| p.update!(current_sign_in_at: 13.months.ago) }
end

it "finds them" do
it 'finds them' do
expect(subject).to match_array(people)
end

it "does not find them with event participation in the future" do
it 'does not find them with event participation in the future' do
event = Fabricate(:event, dates: [Event::Date.new(start_at: 10.days.from_now)])
people.each do |p|
Event::Participation.create!(event: event, person: p)
Expand All @@ -113,7 +106,7 @@
expect(subject).to_not match_array(people)
end

it "finds them with event participation in the past" do
it 'finds them with event participation in the past' do
event = Fabricate(:event, dates: [Event::Date.new(start_at: 10.days.ago)])
people.each do |p|
Event::Participation.create!(event: event, person: p)
Expand All @@ -123,60 +116,60 @@
end
end

context "with current_sign_in_at nil" do
context 'with current_sign_in_at nil' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)

people.each { |p| p.update!(current_sign_in_at: nil) }
end

it "finds them" do
it 'finds them' do
expect(subject).to match_array(people)
end
end

context "with current_sign_in_at inside cutoff duration" do
context 'with current_sign_in_at inside cutoff duration' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)
people.each { |p| p.update!(current_sign_in_at: 11.months.ago) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end
end
end
end

context "people with expired roles inside cutoff duration" do
context 'people with expired roles inside cutoff duration' do
let!(:people) { people_with_expired_roles }

before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_roles).and_return(12)
end

context "with people_manageds" do
context 'with people_manageds' do
before do
people.each do |p|
p.manageds = [Fabricate(:person)]
end
end

context "with current_sign_in_at outside cutoff duration" do
context 'with current_sign_in_at outside cutoff duration' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)
people.each { |p| p.update!(current_sign_in_at: 13.months.ago) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end

it "does not find them with event participation in the future" do
it 'does not find them with event participation in the future' do
event = Fabricate(:event, dates: [Event::Date.new(start_at: 10.days.from_now)])
people.each do |p|
Event::Participation.create!(event: event, person: p)
Expand All @@ -185,7 +178,7 @@
expect(subject).to_not match_array(people)
end

it "does not find them with event participation in the past" do
it 'does not find them with event participation in the past' do
event = Fabricate(:event, dates: [Event::Date.new(start_at: 10.days.ago, finish_at: 5.days.ago)])
people.each do |p|
Event::Participation.create!(event: event, person: p)
Expand All @@ -195,46 +188,46 @@
end
end

context "with current_sign_in_at nil" do
context 'with current_sign_in_at nil' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)

people.each { |p| p.update!(current_sign_in_at: nil) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end
end

context "with current_sign_in_at inside cutoff duration" do
context 'with current_sign_in_at inside cutoff duration' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)
people.each { |p| p.update!(current_sign_in_at: 11.months.ago) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end
end
end

context "without people_manageds" do
context "with current_sign_in_at outside cutoff duration" do
context 'without people_manageds' do
context 'with current_sign_in_at outside cutoff duration' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)
people.each { |p| p.update!(current_sign_in_at: 13.months.ago) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end

it "does not find them with event participation in the future" do
it 'does not find them with event participation in the future' do
event = Fabricate(:event, dates: [Event::Date.new(start_at: 10.days.from_now)])
people.each do |p|
Event::Participation.create!(event: event, person: p)
Expand All @@ -243,7 +236,7 @@
expect(subject).to_not match_array(people)
end

it "does not find them with event participation in the past" do
it 'does not find them with event participation in the past' do
event = Fabricate(:event, dates: [Event::Date.new(start_at: 10.days.ago, finish_at: 5.days.ago)])
people.each do |p|
Event::Participation.create!(event: event, person: p)
Expand All @@ -253,40 +246,40 @@
end
end

context "with current_sign_in_at nil" do
context 'with current_sign_in_at nil' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)

people.each { |p| p.update!(current_sign_in_at: nil) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end
end

context "with current_sign_in_at inside cutoff duration" do
context 'with current_sign_in_at inside cutoff duration' do
before do
expect(Settings.people.cleanup_cutoff_duration).to receive(:regarding_current_sign_in_at).and_return(12)
people.each { |p| p.update!(current_sign_in_at: 11.months.ago) }
end

it "does not find them" do
it 'does not find them' do
expect(subject).to_not match_array(people)
end
end
end
end

context "with people_manageds" do
it "does not find people without any roles" do
context 'with people_manageds' do
it 'does not find people without any roles' do
people_without_roles.each do |p|
p.manageds += [Fabricate(:person)]
end
expect(subject).to_not match_array(people_without_roles)
end

it "does not find people with active roles" do
it 'does not find people with active roles' do
people_with_roles.each do |p|
p.manageds += [Fabricate(:person)]
end
Expand Down

0 comments on commit 26f269d

Please sign in to comment.