Browse Source

Differentiate support and public interfaces

pull/660/head
Paul Robert Lloyd 3 years ago
parent
commit
903775e143
  1. 5
      app/frontend/styles/_header.scss
  2. 16
      app/helpers/application_helper.rb
  3. 4
      app/views/layouts/application.html.erb
  4. 27
      spec/helpers/application_helper_spec.rb

5
app/frontend/styles/_header.scss

@ -21,3 +21,8 @@
} }
} }
} }
.app-header--orange,
.app-header--orange .govuk-header__container {
border-bottom-color: govuk-colour("orange");
}

16
app/helpers/application_helper.rb

@ -9,6 +9,22 @@ module ApplicationHelper
end end
end end
def govuk_header_classes
if current_user && current_user.support?
"app-header app-header--orange"
else
"app-header"
end
end
def govuk_phase_banner_tag
if current_user && current_user.support?
{ colour: "orange", text: "Support beta" }
else
{ text: "Beta" }
end
end
private private
def paginated_title(title, pagy) def paginated_title(title, pagy)

4
app/views/layouts/application.html.erb

@ -43,7 +43,7 @@
<%= govuk_skip_link %> <%= govuk_skip_link %>
<%= govuk_header( <%= govuk_header(
classes: "app-header", classes: govuk_header_classes,
service_url: current_user.nil? ? "/" : "/logs", service_url: current_user.nil? ? "/" : "/logs",
navigation_classes: "govuk-header__navigation--end", navigation_classes: "govuk-header__navigation--end",
) do |component| ) do |component|
@ -60,7 +60,7 @@
<%= govuk_phase_banner( <%= govuk_phase_banner(
classes: "govuk-width-container", classes: "govuk-width-container",
tag: { text: "Beta" }, tag: govuk_phase_banner_tag,
text: "This is a new service – help us improve it by #{feedback_link}".html_safe, text: "This is a new service – help us improve it by #{feedback_link}".html_safe,
) %> ) %>

27
spec/helpers/application_helper_spec.rb

@ -7,6 +7,33 @@ RSpec.describe ApplicationHelper do
let(:case_log) { FactoryBot.build(:case_log, :in_progress) } let(:case_log) { FactoryBot.build(:case_log, :in_progress) }
let(:pagy) { nil } let(:pagy) { nil }
describe "govuk_header_classes" do
context "with external user" do
expect(govuk_header_classes) .to eq("app-header")
end
context "with internal support user" do
let(:current_user) { FactoryBot.create(:user, :support) }
expect(govuk_header_classes) .to eq("app-header app-header--orange")
end
end
describe "govuk_phase_banner_tag" do
context "with external user" do
expect(govuk_phase_banner_tag) .to eq({
text: "Beta",
})
end
context "with support user" do
let(:current_user) { FactoryBot.create(:user, :support) }
expect(govuk_phase_banner_tag) .to eq({
colour: "orange",
text: "Support beta",
})
end
end
describe "browser_title" do describe "browser_title" do
context "with no pagination" do context "with no pagination" do
it "returns correct browser title when title is given" do it "returns correct browser title when title is given" do

Loading…
Cancel
Save