From 26f269d26e70a86064ecea53ac1e6ca68e5c0c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Illi-Zuberb=C3=BChler?= Date: Tue, 15 Oct 2024 10:02:53 +0200 Subject: [PATCH] Revert "Add explicit #start_on/#end_on to Role, remove FutureRole, Role#delete_on (#82)" This reverts commit deab9cae646b85b03a56a81edfaa46ea28f1452d. --- spec/domain/people/cleanup_finder_spec.rb | 113 ++++++++++------------ 1 file changed, 53 insertions(+), 60 deletions(-) diff --git a/spec/domain/people/cleanup_finder_spec.rb b/spec/domain/people/cleanup_finder_spec.rb index 76bbf7d..c4d38ac 100644 --- a/spec/domain/people/cleanup_finder_spec.rb +++ b/spec/domain/people/cleanup_finder_spec.rb @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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) @@ -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