Skip to content

Commit 76df78b

Browse files
Merge pull request #2397 from NCCE/3034-fix-flaky-tests
Fixing flaky tests
2 parents 054d704 + d6efd74 commit 76df78b

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

spec/components/user_programme_course_bookings_with_asides_component_spec.rb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,24 @@
22

33
RSpec.describe UserProgrammeCourseBookingsWithAsidesComponent, type: :component do
44
let(:user) { create(:user) }
5-
let(:activity) { find_or_create_activity("CP199", category: :online) }
6-
let(:activity_two) { find_or_create_activity("CP228") }
7-
let(:activity_three) { find_or_create_activity("CS101", remote_delivered_cpd: true) }
5+
let(:activity) { create(:activity, category: :online) }
6+
let(:activity_two) { find_or_create_activity("CP228") } # Require specific activity code to ensure its in smart connector
7+
let(:activity_three) { create(:activity, remote_delivered_cpd: true) }
88
let(:programme) { create(:primary_certificate) }
99
let(:achievement) { create(:achievement, user:) }
1010
let!(:courses) { create_list(:programme_activity_grouping, 2, :with_activities, sort_key: 2, community: false, programme:) }
1111
let!(:programme_activity) { create(:programme_activity, programme:, activity:, programme_activity_grouping: courses.first) }
12-
let!(:programme_activity_two) { create(:programme_activity, programme:, activity: activity_two, programme_activity_grouping: courses.first) }
12+
let!(:programme_activity_two) { find_or_create_programme_activity(activity_two, programme, courses.first) }
1313
let!(:programme_activity_three) { create(:programme_activity, programme:, activity: activity_three, programme_activity_grouping: courses.first) }
1414
let(:user_achievement) { create(:achievement, user:, activity:) }
1515
let(:remote_achievement) { create(:achievement, user:, activity: activity_three) }
1616
let(:completed_user_achievement) { create(:completed_achievement, user:, activity: activity_two) }
1717

18+
def find_or_create_programme_activity(activity, programme, grouping)
19+
programme_activity = ProgrammeActivity.find_by(activity:, programme:)
20+
programme_activity || create(:programme_activity, programme:, activity:, programme_activity_grouping: grouping)
21+
end
22+
1823
def find_or_create_activity(stem_activity_code, **)
1924
activity = Activity.find_by(stem_activity_code:)
2025
activity || create(:activity, stem_activity_code:, **)

spec/mailers/cms_mailer_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
let(:user) { create(:user) }
66
let(:activity) { create(:activity, programmes: [programme], title: "Test activity") }
77
let!(:second_activity) { create(:activity, programmes: [programme], title: "Test activity second") }
8-
let!(:other_activity) { create(:activity, programmes: [programme], title: "Other activity", stem_activity_code: "CP823") }
8+
let!(:other_activity) { create(:activity, programmes: [programme], title: "Other activity") }
99
let!(:achievement) { create(:completed_achievement, activity:, user:) }
1010
let(:subject) { "I am a test email" }
1111
let(:slug) { "test-email-slug" }
@@ -46,7 +46,7 @@
4646
Cms::Mocks::EmailComponents::Cta.generate_raw_data(text: "CTA 1", link: "https://teachcomputing.org/cta1"),
4747
Cms::Mocks::EmailComponents::Cta.generate_raw_data(text: "CTA 2", link: "https://teachcomputing.org/cta2"),
4848
Cms::Mocks::EmailComponents::CourseList.generate_raw_data(section_title: nil, courses: [
49-
Cms::Mocks::EmailComponents::Course.generate_data(activity_code: "CP823")
49+
Cms::Mocks::EmailComponents::Course.generate_data(activity_code: other_activity.stem_activity_code)
5050
])
5151
]
5252
}
@@ -124,7 +124,7 @@
124124
end
125125

126126
it "renders course link in text part" do
127-
expect(@mail.text_part.body).to include("#{other_activity.title} (http://teachcomputing.test/courses/CP823/#{other_activity.title.parameterize})")
127+
expect(@mail.text_part.body).to include("#{other_activity.title} (http://teachcomputing.test/courses/#{other_activity.stem_activity_code}/#{other_activity.title.parameterize})")
128128
end
129129

130130
describe "Newer achievement" do

0 commit comments

Comments
 (0)