Skip to content

Commit

Permalink
Create browse list partial for variant B users
Browse files Browse the repository at this point in the history
Co-authored-by: Martin Jones <martin.jones@digital.cabinet-office.gov.uk>
  • Loading branch information
hannako and MartinJJones committed May 13, 2024
1 parent 89995ee commit 8de2421
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 6 deletions.
3 changes: 3 additions & 0 deletions app/controllers/browse_controller.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class BrowseController < ApplicationController
include NewBrowseAbTestable
slimmer_template "gem_layout_full_width"

def index
Expand All @@ -20,6 +21,8 @@ def show

private

helper_method :new_browse_variant_b?

def show_html(page)
template = :show
render template, locals: { page: }
Expand Down
28 changes: 28 additions & 0 deletions app/views/browse/_browse_list.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<% total_links = page.second_level_browse_pages.count.to_s %>
<ul class="browse__chevron-cards">
<% page.second_level_browse_pages.map.with_index do |second_level_browse_page, index| %>
<%= render partial: "browse/chevron_card", locals: {
title: second_level_browse_page.title,
link: second_level_browse_page.base_path,
description: second_level_browse_page.description,
sub_heading_level: display_action_links_for_slug?(page.slug) ? 3 : 2,
data_attributes: {
track_category: "browseClicked",
track_action: "topicsLink",
track_label: second_level_browse_page.base_path,
track_dimension: second_level_browse_page.title,
track_options: {
dimension28: total_links,
dimension29: second_level_browse_page.title,
dimension114: index + 1,
},
ga4_link: {
event_name: "navigation",
type: "browse card",
index_link: index + 1,
index_total: total_links,
},
},
} %>
<% end %>
</ul>
6 changes: 5 additions & 1 deletion app/views/browse/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,9 @@
<% end %>
<%= render "shared/browse_cards_container" do %>
<%= render partial: "browse/browse_grid", locals: { page: page } %>
<% if new_browse_variant_b? %>
<%= render partial: "browse/browse_list", locals: { page: page } %>
<% else %>
<%= render partial: "browse/browse_grid", locals: { page: page } %>
<% end %>
<% end %>
21 changes: 16 additions & 5 deletions spec/controllers/browse_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,24 @@
context "NewBrowse AB test" do
subject { get :show, params: { top_level_slug: "benefits" } }

%w[A B Z].each do |variant|
it "with variant #{variant}" do
with_variant NewBrowse: variant do
expect(subject).to render_template(:show)
end
it "with variant A" do
with_variant NewBrowse: "A" do
expect(subject).to render_template(partial: "_browse_grid")
end
end

it "with variant B" do
with_variant NewBrowse: "B" do
expect(subject).to render_template(partial: "_browse_list")
end
end

it "with variant Z" do
with_variant NewBrowse: "Z" do
expect(subject).to render_template(partial: "_browse_grid")
end
end

Check failure on line 70 in spec/controllers/browse_controller_spec.rb

View workflow job for this annotation

GitHub Actions / Lint Ruby / Run RuboCop

Layout/EmptyLinesAroundBlockBody: Extra empty line detected at block body end. (https://rubystyle.guide#empty-lines-around-bodies)
end
end

Expand Down

0 comments on commit 8de2421

Please sign in to comment.