Browse Source

refactor: make specs more readable

pull/3349/head
Nat Dean-Lewis 2 weeks ago
parent
commit
be2bebcbd7
  1. 24
      spec/helpers/application_helper_spec.rb
  2. 43
      spec/requests/users_controller_spec.rb

24
spec/helpers/application_helper_spec.rb

@ -9,13 +9,15 @@ RSpec.describe ApplicationHelper do
let(:current_user) { FactoryBot.create(:user) }
describe "govuk_service_navigation_classes" do
before do
allow(helper).to receive(:notifications_to_display?).and_return(false)
end
context "with non-support user" do
it "returns empty string for blue border (default)" do
expect(helper.govuk_service_navigation_classes(current_user)).to eq("")
context "when no notifications are displayed" do
before do
allow(helper).to receive(:notifications_to_display?).and_return(false)
end
it "returns empty string for blue border (default)" do
expect(helper.govuk_service_navigation_classes(current_user)).to eq("")
end
end
context "when notifications are displayed" do
@ -32,8 +34,14 @@ RSpec.describe ApplicationHelper do
context "with support user" do
let(:current_user) { FactoryBot.create(:user, :support) }
it "always returns orange class for orange border" do
expect(helper.govuk_service_navigation_classes(current_user)).to eq("app-service-navigation--orange")
context "when no notifications are displayed" do
before do
allow(helper).to receive(:notifications_to_display?).and_return(false)
end
it "always returns orange class for orange border" do
expect(helper.govuk_service_navigation_classes(current_user)).to eq("app-service-navigation--orange")
end
end
context "when notifications are displayed" do

43
spec/requests/users_controller_spec.rb

@ -76,28 +76,39 @@ RSpec.describe UsersController, type: :request do
end
describe "title link" do
it "has GOV.UK header and service navigation both linking to home page for non-support user" do
sign_in user
get "/", headers:, params: {}
expect(path).to eq("/")
expect(page).to have_content("Welcome back")
context "for a non-support user" do
before do
sign_in user
end
govuk_header_link = '<a class="govuk-header__link govuk-header__homepage-link" href="/">'
expect(CGI.unescape_html(response.body)).to include(govuk_header_link)
it "has GOV.UK header and service navigation both linking to home page" do
get "/", headers:, params: {}
expect(path).to eq("/")
expect(page).to have_content("Welcome back")
expect(page).to have_css(".govuk-service-navigation__link[href='/']", text: "Submit social housing lettings and sales data (CORE)")
govuk_header_link = '<a class="govuk-header__link govuk-header__homepage-link" href="/">'
expect(CGI.unescape_html(response.body)).to include(govuk_header_link)
expect(page).to have_css(".govuk-service-navigation__link[href='/']", text: "Submit social housing lettings and sales data (CORE)")
end
end
it "has GOV.UK header and service navigation both linking to home page for support user" do
support_user = create(:user, :support)
sign_in support_user
get "/", headers:, params: {}
follow_redirect!
context "for a support user" do
let(:support_user) { create(:user, :support) }
govuk_header_link = '<a class="govuk-header__link govuk-header__homepage-link" href="/">'
expect(CGI.unescape_html(response.body)).to include(govuk_header_link)
before do
sign_in support_user
end
it "has GOV.UK header and service navigation both linking to home page" do
get "/", headers:, params: {}
follow_redirect!
govuk_header_link = '<a class="govuk-header__link govuk-header__homepage-link" href="/">'
expect(CGI.unescape_html(response.body)).to include(govuk_header_link)
expect(page).to have_css(".govuk-service-navigation__link[href='/']", text: "Submit social housing lettings and sales data (CORE)")
expect(page).to have_css(".govuk-service-navigation__link[href='/']", text: "Submit social housing lettings and sales data (CORE)")
end
end
end

Loading…
Cancel
Save