Skip to content

Commit 85d95fb

Browse files
authored
Merge pull request #2783 from govuk-forms/test-new-feedback-component
Test new feedback component
2 parents 23f44c7 + a80160b commit 85d95fb

9 files changed

Lines changed: 107 additions & 7 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
.test-feedback {
2+
box-sizing: border-box;
3+
border-top: 1px solid var(--govuk-brand-colour, #1d70b8);
4+
padding: 20px 15px 25px;
5+
background-color: var(--govuk-surface-background-colour, #f4f8fb);
6+
}
7+
8+
.test-feedback .govuk-body:last-child {
9+
margin-bottom: 0;
10+
}
11+
12+
@media (min-width: 40.0625rem) {
13+
.test-feedback {
14+
padding-left: 20px;
15+
padding-right: 20px;
16+
}
17+
}
18+
19+
@media (max-width: calc(40.0625rem - 1px)) {
20+
.test-feedback {
21+
margin-left: 0;
22+
margin-right: 0;
23+
}
24+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<div class="test-feedback govuk-width-container">
2+
<div class="govuk-grid-row">
3+
<div class="govuk-grid-column-two-thirds">
4+
<h2 class="govuk-heading-m"><%= t("feedback_link.heading") %></h2>
5+
<p class="govuk-body">
6+
<%= t("feedback_link.body_html", feedback_url: @feedback_url) %>
7+
</p>
8+
</div>
9+
</div>
10+
</div>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# frozen_string_literal: true
2+
3+
module FeedbackLinkComponent
4+
class View < ApplicationComponent
5+
def initialize(feedback_url: nil)
6+
super()
7+
@feedback_url = feedback_url
8+
end
9+
10+
def render?
11+
@feedback_url.present?
12+
end
13+
end
14+
end

app/frontend/entrypoints/application.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ $govuk-global-styles: true;
2121
@import "../../components/act_as_user_banner_component";
2222
@import "../../components/service_navigation_component";
2323
@import "../../components/scrolling_wrapper_component";
24+
@import "../../components/feedback_link_component/";
2425

2526
// TODO: this should be fixed by https://trello.com/c/FpxolRha/3030-fix-missing-arrow-on-autocomplete-fields
2627
.autocomplete__dropdown-arrow-down {

app/views/layouts/application.html.erb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212

1313
<% content_for :before_content do %>
1414
<%= govuk_phase_banner(tag: { text: "Beta" }) do %>
15-
<%= t("phase_banner.before_link") %>
16-
<%= govuk_link_to t("phase_banner.link"), t("phase_banner.feedback_survey_url") %>
17-
<%= t("phase_banner.after_link") %>
15+
<%= t("phase_banner.text") %>
1816
<% end %>
1917
<%= yield :back_link %>
2018
<%= render ActAsUserBannerComponent::View.new(acting_as_user, actual_user) %>
@@ -23,6 +21,8 @@
2321
<% content_for :footer do %>
2422
<% meta_items = {t("footer.accessibility_statement") => accessibility_statement_url, t("footer.cookies") => cookies_url, t("footer.privacy") => privacy_url, t("footer.terms_of_use") => terms_of_use_url, t("footer.sitemap") => sitemap_url} %>
2523

24+
<%= render FeedbackLinkComponent::View.new(feedback_url: t("feedback_link.feedback_survey_url")) %>
25+
2626
<%= govuk_footer meta_items_title: t("footer.helpful_links"), meta_items: do |footer| %>
2727
<%= footer.with_meta_html do %>
2828
<div class="govuk-footer__meta-custom">

config/locales/en.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,12 @@ en:
367367
prefix: 'Error:'
368368
exit_page:
369369
no_content_added_html: "<p>No content added</p>"
370+
feedback_link:
371+
body_html: |
372+
Tell us about your experience using this service.
373+
You’ll help us make improvements by <a href="%{feedback_url}" class="govuk-link">giving us your feedback</a>.
374+
feedback_survey_url: https://surveys.publishing.service.gov.uk/s/T7OW3C/
375+
heading: Help us improve this service
370376
footer:
371377
accessibility_statement: Accessibility statement
372378
built_by_link: Government Digital Service
@@ -1734,10 +1740,7 @@ en:
17341740
heading: Setting up GOV.UK Pay
17351741
submit_button: Save and continue
17361742
phase_banner:
1737-
after_link: will help us improve it.
1738-
before_link: This is a new service, your
1739-
feedback_survey_url: https://surveys.publishing.service.gov.uk/s/T7OW3C/
1740-
link: feedback
1743+
text: This is a new service.
17411744
privacy_policy_input:
17421745
body_html: |
17431746
<p>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class FeedbackLinkComponent::FeedbackLinkComponentPreview < ViewComponent::Preview
2+
def default
3+
render(FeedbackLinkComponent::View.new)
4+
end
5+
6+
def with_feedback_url
7+
render(FeedbackLinkComponent::View.new(feedback_url: "/feedback"))
8+
end
9+
end
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
require "rails_helper"
2+
3+
RSpec.describe FeedbackLinkComponent::View, type: :component do
4+
let(:feedback_url) { "/feedback" }
5+
6+
before do
7+
render_inline(described_class.new(feedback_url:))
8+
end
9+
10+
context "when feedback url is nil" do
11+
let(:feedback_url) { nil }
12+
13+
it "does not render the component" do
14+
expect(page).not_to have_selector("*")
15+
end
16+
end
17+
18+
context "when the feedback url is set" do
19+
let(:feedback_url) { "/feedback" }
20+
21+
it "renders the heading" do
22+
expect(page).to have_css("h2", text: "Help us improve this service")
23+
end
24+
25+
it "renders the body text" do
26+
expect(page).to have_text("Tell us about your experience using this service.")
27+
expect(page).to have_text("You’ll help us make improvements by giving us your feedback.")
28+
end
29+
30+
it "includes a link to the feedback URL" do
31+
expect(page).to have_link("giving us your feedback", href: feedback_url)
32+
end
33+
end
34+
end

spec/requests/web_controller_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,11 @@
228228
get root_path
229229
end
230230

231+
it "contains the feedback link component" do
232+
expect(response.body).to include("Help us improve this service")
233+
expect(response.body).to include("<a href=\"#{I18n.t('feedback_link.feedback_survey_url')}\" class=\"govuk-link\">giving us your feedback</a>")
234+
end
235+
231236
it "contains links related to the service" do
232237
expect(response.body).to include('<a class="govuk-footer__link" href="https://www.forms.service.gov.uk/accessibility">Accessibility statement</a>')
233238
expect(response.body).to include('<a class="govuk-footer__link" href="https://www.forms.service.gov.uk/cookies">Cookies</a>')

0 commit comments

Comments
 (0)