|
|
|
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>
12 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
|