diff --git a/spec/components/user_programme_course_bookings_with_asides_component_spec.rb b/spec/components/user_programme_course_bookings_with_asides_component_spec.rb index 8b02920e2d..58ef4e66a0 100644 --- a/spec/components/user_programme_course_bookings_with_asides_component_spec.rb +++ b/spec/components/user_programme_course_bookings_with_asides_component_spec.rb @@ -2,19 +2,24 @@ RSpec.describe UserProgrammeCourseBookingsWithAsidesComponent, type: :component do let(:user) { create(:user) } - let(:activity) { find_or_create_activity("CP199", category: :online) } - let(:activity_two) { find_or_create_activity("CP228") } - let(:activity_three) { find_or_create_activity("CS101", remote_delivered_cpd: true) } + let(:activity) { create(:activity, category: :online) } + let(:activity_two) { find_or_create_activity("CP228") } # Require specific activity code to ensure its in smart connector + let(:activity_three) { create(:activity, remote_delivered_cpd: true) } let(:programme) { create(:primary_certificate) } let(:achievement) { create(:achievement, user:) } let!(:courses) { create_list(:programme_activity_grouping, 2, :with_activities, sort_key: 2, community: false, programme:) } let!(:programme_activity) { create(:programme_activity, programme:, activity:, programme_activity_grouping: courses.first) } - let!(:programme_activity_two) { create(:programme_activity, programme:, activity: activity_two, programme_activity_grouping: courses.first) } + let!(:programme_activity_two) { find_or_create_programme_activity(activity_two, programme, courses.first) } let!(:programme_activity_three) { create(:programme_activity, programme:, activity: activity_three, programme_activity_grouping: courses.first) } let(:user_achievement) { create(:achievement, user:, activity:) } let(:remote_achievement) { create(:achievement, user:, activity: activity_three) } let(:completed_user_achievement) { create(:completed_achievement, user:, activity: activity_two) } + def find_or_create_programme_activity(activity, programme, grouping) + programme_activity = ProgrammeActivity.find_by(activity:, programme:) + programme_activity || create(:programme_activity, programme:, activity:, programme_activity_grouping: grouping) + end + def find_or_create_activity(stem_activity_code, **) activity = Activity.find_by(stem_activity_code:) activity || create(:activity, stem_activity_code:, **) diff --git a/spec/mailers/cms_mailer_spec.rb b/spec/mailers/cms_mailer_spec.rb index dedbae315a..11bff0e5ff 100644 --- a/spec/mailers/cms_mailer_spec.rb +++ b/spec/mailers/cms_mailer_spec.rb @@ -5,7 +5,7 @@ let(:user) { create(:user) } let(:activity) { create(:activity, programmes: [programme], title: "Test activity") } let!(:second_activity) { create(:activity, programmes: [programme], title: "Test activity second") } - let!(:other_activity) { create(:activity, programmes: [programme], title: "Other activity", stem_activity_code: "CP823") } + let!(:other_activity) { create(:activity, programmes: [programme], title: "Other activity") } let!(:achievement) { create(:completed_achievement, activity:, user:) } let(:subject) { "I am a test email" } let(:slug) { "test-email-slug" } @@ -46,7 +46,7 @@ Cms::Mocks::EmailComponents::Cta.generate_raw_data(text: "CTA 1", link: "https://teachcomputing.org/cta1"), Cms::Mocks::EmailComponents::Cta.generate_raw_data(text: "CTA 2", link: "https://teachcomputing.org/cta2"), Cms::Mocks::EmailComponents::CourseList.generate_raw_data(section_title: nil, courses: [ - Cms::Mocks::EmailComponents::Course.generate_data(activity_code: "CP823") + Cms::Mocks::EmailComponents::Course.generate_data(activity_code: other_activity.stem_activity_code) ]) ] } @@ -124,7 +124,7 @@ end it "renders course link in text part" do - expect(@mail.text_part.body).to include("#{other_activity.title} (http://teachcomputing.test/courses/CP823/#{other_activity.title.parameterize})") + expect(@mail.text_part.body).to include("#{other_activity.title} (http://teachcomputing.test/courses/#{other_activity.stem_activity_code}/#{other_activity.title.parameterize})") end describe "Newer achievement" do