From 7099fc28fda71f158552ab1b36bbfcdcfdd802e8 Mon Sep 17 00:00:00 2001 From: pskl Date: Thu, 6 Feb 2025 17:46:26 +0100 Subject: [PATCH] Fix specs --- app/services/student_merger.rb | 2 +- spec/services/student_merger_spec.rb | 21 ++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/services/student_merger.rb b/app/services/student_merger.rb index 6776c8170..cc3ef7d0a 100644 --- a/app/services/student_merger.rb +++ b/app/services/student_merger.rb @@ -59,6 +59,6 @@ def transfer_asp_individu_id! end def transfer_schoolings! - @student_to_merge.schoolings.update_all(student_id: @target_student.id) + @student_to_merge.schoolings.update!(student_id: @target_student.id) end end diff --git a/spec/services/student_merger_spec.rb b/spec/services/student_merger_spec.rb index 3107fc6a7..516d4c7c7 100644 --- a/spec/services/student_merger_spec.rb +++ b/spec/services/student_merger_spec.rb @@ -4,36 +4,35 @@ RSpec.describe StudentMerger do describe "#merge!" do - let(:student1) { create(:schooling, :closed).student } - let(:student2) { create(:schooling, :closed).student } - let(:students) { [student1, student2] } + let(:source_student) { create(:schooling, :closed).student } + let(:target_student) { create(:schooling, :closed).student } + let(:students) { [source_student, target_student] } let(:merger) { described_class.new(students) } context "with invalid inputs" do it "raises error when not given exactly two students" do - merger = described_class.new([student1]) + merger = described_class.new([source_student]) expect { merger.merge! }.to raise_error(StudentMerger::InvalidStudentsArrayError) end end - context "when merging students with payment requests" do + context "when merging students with payment requests" do # rubocop:disable RSpec/MultipleMemoizedHelpers let(:older_payment_request) { create(:asp_payment_request, created_at: 1.month.ago) } let(:newer_payment_request) { create(:asp_payment_request, created_at: 1.day.ago) } - let(:student1) { older_payment_request.student } - let(:student2) { newer_payment_request.student } + let(:source_student) { older_payment_request.student } + let(:target_student) { newer_payment_request.student } before do - student1.current_schooling.update!(end_date: 2.days.ago) + source_student.current_schooling.update!(end_date: 2.days.ago) end it "keeps the student with the most recent payment request" do merger.merge! - expect(Student.exists?(student1.id)).to be false - expect(Student.exists?(student2.id)).to be true + expect(Student.exists?(source_student.id)).to be false end it "raises error when trying to transfer active schoolings" do - create(:schooling, student: student1) + create(:schooling, student: source_student) expect { merger.merge! }.to raise_error(StudentMerger::ActiveSchoolingError) end end