Skip to content

Commit c13a3c8

Browse files
committed
Adding support for activity list to show legacy activities that have achievements
1 parent 6c74f71 commit c13a3c8

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

app/components/community_activity_list_component.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@ def initialize(programme_activity_grouping:, community_achievements:, number_to_
66
@class_name = class_name
77
@button_class = button_class
88

9-
activities_with_achievements = programme_activity_grouping.programme_activities.not_legacy.map do |programme_activity|
9+
activities_with_achievements = programme_activity_grouping.programme_activities.map do |programme_activity|
1010
{
1111
programme_activity:,
1212
achievement: community_achievements&.find { _1.activity_id == programme_activity.activity_id }
1313
}
1414
end
1515

16+
# Remove legacy only if they have an achievement
17+
activities_with_achievements.delete_if { _1[:achievement].nil? && _1[:programme_activity].legacy }
18+
1619
complete, non_complete = activities_with_achievements.partition { _1[:achievement]&.in_state? :complete }
1720

1821
if complete.size < programme_activity_grouping.required_for_completion

spec/components/community_activity_list_component_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,26 @@
4747
expect(page).to have_css(".community-activity-list--show-hide")
4848
end
4949
end
50+
51+
context "with legacy activity" do
52+
let(:activity) { create(:activity, title: "Legacy activity") }
53+
let(:programme_activities) {
54+
create_list(:programme_activity, 2, programme_activity_grouping:)
55+
create(:programme_activity, programme_activity_grouping:, activity:, legacy: true)
56+
}
57+
58+
context "without achievement" do
59+
it "should not show legacy activity" do
60+
expect(page).not_to have_text("Legacy activity")
61+
end
62+
end
63+
64+
context "with achievement" do
65+
let(:community_achievements) { [create(:completed_achievement, activity: activity)] }
66+
67+
it "should show legacy activity" do
68+
expect(page).to have_text("Legacy activity")
69+
end
70+
end
71+
end
5072
end

0 commit comments

Comments
 (0)