|
2 | 2 |
|
3 | 3 | RSpec.describe UserProgrammeCourseBookingsWithAsidesComponent, type: :component do |
4 | 4 | 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) } |
8 | 8 | let(:programme) { create(:primary_certificate) } |
9 | 9 | let(:achievement) { create(:achievement, user:) } |
10 | 10 | let!(:courses) { create_list(:programme_activity_grouping, 2, :with_activities, sort_key: 2, community: false, programme:) } |
11 | 11 | 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) } |
13 | 13 | let!(:programme_activity_three) { create(:programme_activity, programme:, activity: activity_three, programme_activity_grouping: courses.first) } |
14 | 14 | let(:user_achievement) { create(:achievement, user:, activity:) } |
15 | 15 | let(:remote_achievement) { create(:achievement, user:, activity: activity_three) } |
16 | 16 | let(:completed_user_achievement) { create(:completed_achievement, user:, activity: activity_two) } |
17 | 17 |
|
| 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 | + |
18 | 23 | def find_or_create_activity(stem_activity_code, **) |
19 | 24 | activity = Activity.find_by(stem_activity_code:) |
20 | 25 | activity || create(:activity, stem_activity_code:, **) |
|
0 commit comments