Submit social housing lettings and sales data (CORE)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
2.8 KiB

require "rails_helper"
RSpec.describe "layouts/application" do
shared_examples "analytics cookie elements" do |banner:, scripts:|
define_negated_matcher :not_match, :match
it "#{banner ? 'includes' : 'omits'} the cookie banner" do
banner_text = "We’d like to use analytics cookies so we can understand how you use the service and make improvements."
if banner
expect(rendered).to match(banner_text)
else
expect(rendered).not_to match(banner_text)
end
end
it "#{scripts ? 'includes' : 'omits'} the analytics scripts" do
gtm_script_tag = /<script.*googletagmanager/
gtm_iframe_tag = /<iframe.*googletagmanager/
if scripts
expect(rendered).to match(gtm_script_tag).and match(gtm_iframe_tag)
else
expect(rendered).to not_match(gtm_script_tag).and not_match(gtm_iframe_tag)
end
end
end
context "with no cookie set" do
before do
request.cookies[:accept_analytics_cookies] = nil
render
end
include_examples "analytics cookie elements", banner: true, scripts: false
it "sets window.analyticsScript for the JS to refer to if the user accepts" do
expect(rendered).to match(/window\.analyticsScript = "https:\/\/www\.googletagmanager\.com\/gtag\/js\?id=G-[\w\d]+"/)
end
end
context "with analytics accepted" do
before do
request.cookies[:accept_analytics_cookies] = "on"
render
end
include_examples "analytics cookie elements", banner: false, scripts: true
end
context "with analytics rejected" do
before do
request.cookies[:accept_analytics_cookies] = "off"
render
end
include_examples "analytics cookie elements", banner: false, scripts: false
end
CLDC-3116 Create homepage (#2113) * feat: add blank homepage, update routing and tests * feat: add welcome message and thoroughly test routing * refactor: lint * feat: update tests * CLDC-3076: Make example dates consistent (#2107) * CLDC-3076: Make example dates consistent * Use example date even when some hint text provided already * Temp remove some date restrictions * Update to 2 line breaks * Revert "Temp remove some date restrictions" This reverts commit cd7f18f9f10957be0cbabee7665c0abe4239acb6. * Fix lettings log accessor in date question (#2117) * Fix lettings log accessor in date question * Remove hardcoded date example from mrcdate question (#2118) --------- Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com> * CLDC-3061 Add guidance page (#2121) * Add guidance page * Link to guidance from start page * feat: test home/start paths explicitly * CLDC-2253 Add collection resources (#2120) * Update collection resources, add to homepage * Add guidance link to an empty page * Update headings * Rebase fix * Update title * Update file names * Add section break * CLDC-2593 Add upcoming deadlines section (#2119) * Add upcoming deadlines section * Update the content to use the correct dates * Update content * lint * typos * CLDC-2252 Add homepage task section (#2115) * feat: wip add lettings, sales and schemes sections with correct text, counts, links and colouring * feat: add flex styling to match designs * CLDC-3076: Make example dates consistent (#2107) * CLDC-3076: Make example dates consistent * Use example date even when some hint text provided already * Temp remove some date restrictions * Update to 2 line breaks * Revert "Temp remove some date restrictions" This reverts commit cd7f18f9f10957be0cbabee7665c0abe4239acb6. * Fix lettings log accessor in date question (#2117) * Fix lettings log accessor in date question * Remove hardcoded date example from mrcdate question (#2118) --------- Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com> * feat: update breakpoints for responsive layout changes * lint: use hash lookup where possible * lint: erblinting * feat: improve formatting * Reuse govuk grid * Revert "Reuse govuk grid" This reverts commit 8c71f5d9edf261802a8a86e07c13552f51283668. * feat: test home page data boxes * refactor: lint * refactor: lint * feat: test link behaviour is correct in all user scenarios * refactor: lint * feat: update tests * feat: combine task, resources, deadlines sections --------- Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com> Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Co-authored-by: Kat <kosiak.katrina@gmail.com> * CLDC-2255 Add homepage notifications (#2131) * feat: add notification table * feat: add notification banner, use unread gem for notification management * feat: add notifications page and remove unread_notification.rb * feat: add blank homepage, update routing and tests * feat: add welcome message and thoroughly test routing * refactor: lint * feat: update tests * CLDC-3061 Add guidance page (#2121) * Add guidance page * Link to guidance from start page * feat: test home/start paths explicitly * feat: add notification table * feat: add notification banner, use unread gem for notification management * feat: add notifications page and remove unread_notification.rb * feat: default p tag around sanitized page content * feat: add active scope * feat: use newest active unread/unauthenticated notification and update start page * feat: add tests of notification behaviour and routing and refactor * refactor: lint * feat: update Gemfile.lock * feat: add timestamps to readmark table * feat: update gemfile.lock * refactor: lint * feat: test notifications page doesn't show notifications and code simplification * feat: move notification helper methods to notifications_helper.rb --------- Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> * feat: clear all no-status filters on in progress links * CLDC-2590 Add about this service section (#2124) * Add about core section * Move about core to the correct spot on start page * Update content * Add some margins --------- Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com> Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Co-authored-by: Kat <kosiak.katrina@gmail.com>
10 months ago
context "with a notification present" do
context "when notification is shown on unauthenticated pages" do
before do
create(:notification, title: "Old notification title", show_on_unauthenticated_pages: true)
create(:notification, title: "New notification title", show_on_unauthenticated_pages: true)
render
end
it "shows the most recent notification without dismiss link or count" do
expect(rendered).to have_content("New notification title")
expect(rendered).to have_link("Link text")
expect(rendered).not_to have_link("Dismiss")
expect(rendered).not_to have_content("Notification 1 of")
end
end
context "when notification is not shown on unauthenticated pages" do
before do
create(:notification)
render
end
it "does not show the notification banner" do
expect(rendered).not_to have_content("Notification title")
expect(rendered).not_to have_link("Link text")
expect(rendered).not_to have_link("Dismiss")
expect(rendered).not_to have_content("Notification 1 of")
end
end
end
end