Skip to content

Commit 92b3321

Browse files
author
Karl Baker
committed
Ensure suggested related links respect overrides
This commit adds an additional check to ensure that `suggested_ordered_related_items` are only assigned if there are both no `ordered_related_items` and no `ordered_related_items_overrides`. This is necessary because publishers can manually add overrides and expect them to be displayed, instead of any existing links.
1 parent cf8391b commit 92b3321

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

app/models/feature_toggler.rb

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ def use_recommended_related_links?(content_item_links, request_headers)
99
return false if content_item_links.nil?
1010

1111
content_item_links.fetch('ordered_related_items', []).empty? &&
12+
content_item_links.fetch('ordered_related_items_overrides', []).empty? &&
1213
@feature_flags.feature_enabled?(FeatureFlagNames.recommended_related_links, request_headers)
1314
end
1415
end

test/controllers/content_items_controller_test.rb

+15-1
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,20 @@ class ContentItemsControllerTest < ActionController::TestCase
152152
assert_equal content_item['links']['ordered_related_items'], assigns[:content_item].content_item['links']['ordered_related_items']
153153
end
154154

155+
test "gets item from content store and does not change ordered_related_items when feature flag header is specified but link overrides exist" do
156+
HttpFeatureFlags.instance.add_http_feature_flag(FeatureFlagNames.recommended_related_links, 'true')
157+
request.headers["HTTP_GOVUK_USE_RECOMMENDED_RELATED_LINKS"] = 'true'
158+
159+
content_item = content_store_has_schema_example('guide', 'guide-with-related-link-overrides')
160+
161+
get :show, params: { path: path_for(content_item) }
162+
assert_response :success
163+
assert_nil content_item['links']['ordered_related_items'], 'Content item should not have existing related links'
164+
refute_empty content_item['links']['ordered_related_items_overrides'], 'Content item should have existing related link overrides'
165+
refute_empty content_item['links']['suggested_ordered_related_items'], 'Content item should have existing suggested related links'
166+
assert_nil content_item['links']['ordered_related_items']
167+
end
168+
155169
test "gets item from content store and keeps ordered_related_items when feature flag header is specified but recommended links turned off" do
156170
HttpFeatureFlags.instance.add_http_feature_flag(FeatureFlagNames.recommended_related_links, 'false')
157171
request.headers["HTTP_GOVUK_USE_RECOMMENDED_RELATED_LINKS"] = 'true'
@@ -165,7 +179,7 @@ class ContentItemsControllerTest < ActionController::TestCase
165179
assert_equal [], assigns[:content_item].content_item['links']['ordered_related_items']
166180
end
167181

168-
test "gets item from content store and replaces ordered_related_items when feature flag header is specified and there are no existing links" do
182+
test "gets item from content store and replaces ordered_related_items when feature flag header is specified and there are no existing links or overrides" do
169183
HttpFeatureFlags.instance.add_http_feature_flag(FeatureFlagNames.recommended_related_links, 'true')
170184
request.headers["HTTP_GOVUK_USE_RECOMMENDED_RELATED_LINKS"] = 'true'
171185

0 commit comments

Comments
 (0)