File tree Expand file tree Collapse file tree 5 files changed +27
-43
lines changed Expand file tree Collapse file tree 5 files changed +27
-43
lines changed Original file line number Diff line number Diff line change @@ -7,33 +7,9 @@ def initialize(data:)
77 @data = data
88 end
99
10- def company_logo
11- data_models_by_type ( Cms ::Models ::Images ::Image ) . first
12- end
13-
14- def funding_logo
15- data_models_by_type ( Cms ::Models ::Images ::Image ) . second
16- end
17-
18- def company_url
19- find_text_field ( 0 ) &.value
20- end
21-
22- def funding_url
23- find_text_field ( 1 ) &.value
24- end
25-
26- def link_blocks
27- data_models_by_type ( Cms ::Models ::Meta ::FooterLinkBlock ) . first &.process_blocks
28- end
29-
3010 private
3111
32- def data_models_by_type ( type )
33- data . select { |model | model . is_a? ( type ) }
34- end
35-
36- def find_text_field ( index )
37- data_models_by_type ( Cms ::Models ::Data ::TextField ) [ index ]
12+ def get_model ( key )
13+ @data . get_model ( key )
3814 end
3915end
Original file line number Diff line number Diff line change 22 <%= row.with_column("full") do %>
33 <div class ="cms-footer-component-wrapper ">
44 < div >
5- < a href ="<%= company_url %> ">
6- <%= render company_logo . render %>
5+ < a href ="<%= get_model ( :company_logo_link ) . value %> ">
6+ <%= render get_model ( : company_logo) . render %>
77 </ a >
88 < p class ="govuk-body-s cms-footer-component--funding-text "> Funded by</ p >
9- < a href ="<%= funding_url %> ">
10- <%= render funding_logo . render %>
9+ < a href ="<%= get_model ( :funder_logo_link ) . value %> ">
10+ <%= render get_model ( :funder_logo ) . render %>
1111 </ a >
1212 </ div >
13- <% link_blocks . each do |block | %>
13+ <% get_model ( :link_block ) . link_blocks . each do |block | %>
1414 < div class ="cms-footer-component__link-block ">
1515 <% block . each do |link | %>
1616 <%= render link . render ( additional_classes : [ "govuk-footer__link" , "ncce-link" , "ncce-link--on-dark" ] ) %>
Original file line number Diff line number Diff line change @@ -23,6 +23,13 @@ def method_missing(method_name)
2323 data_models [ index ]
2424 end
2525
26+ def get_model ( key )
27+ index = self . class . param_indexes [ key ]
28+ return nil unless index
29+
30+ data_models [ index ]
31+ end
32+
2633 def self . param_name ( mapping )
2734 return mapping [ :param_name ] if mapping . has_key? ( :param_name )
2835 mapping [ :key ] . to_s . underscore . to_sym
Original file line number Diff line number Diff line change 11< footer class ="govuk-footer ncce-footer ">
22 <% if @cms_footer %>
3- <%= render Cms ::FooterComponent . new ( data : @cms_footer . data_models ) %>
3+ <%= render Cms ::FooterComponent . new ( data : @cms_footer ) %>
44 <% end %>
55</ footer >
Original file line number Diff line number Diff line change 33require "rails_helper"
44
55RSpec . describe Cms ::FooterComponent , type : :component do
6+ let ( :data ) { Cms ::Singles ::Footer . get }
7+
68 before do
7- render_inline ( described_class . new ( data : [
8- Cms ::Models ::Data ::TextField . new ( value : Faker ::Lorem . word ) ,
9- Cms ::Models ::Data ::TextField . new ( value : Faker ::Lorem . word ) ,
10- Cms ::Mocks ::Images ::Image . as_model ,
11- Cms ::Mocks ::Images ::Image . as_model ,
12- Cms ::Models ::Meta ::FooterLinkBlock . new (
13- link_blocks : Array . new ( 4 ) do
14- Array . new ( 5 ) { Cms ::Mocks ::DynamicComponents ::ContentBlocks ::LinkWithIcon . as_model }
15- end
16- )
17- ] ) )
9+ stub_strapi_footer
10+ render_inline ( described_class . new ( data :) )
1811 end
1912
2013 it "renders the component" do
2518 expect ( page ) . to have_css ( "img" , count : 2 )
2619 end
2720
21+ it "has the company logo link" do
22+ expect ( page ) . to have_link ( href : data . get_model ( :company_logo_link ) . value )
23+ end
24+
25+ it "has the funder logo link" do
26+ expect ( page ) . to have_link ( href : data . get_model ( :funder_logo_link ) . value )
27+ end
28+
2829 it "renders the link blocks" do
2930 expect ( page ) . to have_css ( ".cms-footer-component__link-block" , count : 4 )
3031 end
You can’t perform that action at this time.
0 commit comments