-
Notifications
You must be signed in to change notification settings - Fork 20
/
contextual_sidebar_spec.rb
73 lines (65 loc) · 3.02 KB
/
contextual_sidebar_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
require "rails_helper"
describe "Contextual sidebar", type: :view do
def component_name
"contextual_sidebar"
end
it "renders the sidebar" do
render_component(
content_item: GovukSchemas::RandomExample.for_schema(frontend_schema: "speech"),
)
assert_select ".gem-c-contextual-sidebar"
end
it "can render in welsh" do
I18n.with_locale(:cy) do
render_component(
content_item: GovukSchemas::RandomExample.for_schema(frontend_schema: "speech"),
)
end
assert_select ".gem-c-contextual-sidebar"
end
it "applies GA4 tracking to the Ukraine sidebar" do
should_show_ukraine = {
links: {
topical_events: [
{
content_id: "bfa79635-ffda-4b5d-8266-a9cd3a03649c",
title: "Russian invasion of Ukraine: UK government response",
base_path: "/government/topical-events/russian-invasion-of-ukraine-uk-government-response",
locale: "en",
},
],
},
}.deep_stringify_keys!
content_item = GovukSchemas::Example.find("document_collection", example_name: "document_collection")
content_item = content_item.deep_merge!(should_show_ukraine)
render_component(
content_item:,
)
index_total = 4 # have to hard code this here but if ukraine links change this number may change, and test will fail
assert_select ".gem-c-contextual-sidebar .gem-c-contextual-sidebar__cta--ukraine[data-module='ga4-link-tracker']"
assert_select ".gem-c-contextual-sidebar .gem-c-contextual-sidebar__cta--ukraine .govuk-link[data-ga4-link='{\"event_name\":\"navigation\",\"type\":\"related content\",\"index_section\":\"1\",\"index_link\":\"1\",\"index_section_count\":\"1\",\"index_total\":\"#{index_total}\",\"section\":\"Invasion of Ukraine\"}']"
assert_select ".gem-c-contextual-sidebar .gem-c-contextual-sidebar__cta--ukraine .govuk-link[data-ga4-link='{\"event_name\":\"navigation\",\"type\":\"related content\",\"index_section\":\"1\",\"index_link\":\"2\",\"index_section_count\":\"1\",\"index_total\":\"#{index_total}\",\"section\":\"Invasion of Ukraine\"}']"
end
it "allows GA4 tracking to be disabled" do
should_show_ukraine = {
links: {
topical_events: [
{
content_id: "bfa79635-ffda-4b5d-8266-a9cd3a03649c",
title: "Russian invasion of Ukraine: UK government response",
base_path: "/government/topical-events/russian-invasion-of-ukraine-uk-government-response",
locale: "en",
},
],
},
}.deep_stringify_keys!
content_item = GovukSchemas::Example.find("document_collection", example_name: "document_collection")
content_item = content_item.deep_merge!(should_show_ukraine)
render_component(
content_item:,
disable_ga4: true,
)
assert_select ".gem-c-contextual-sidebar .gem-c-contextual-sidebar__cta--ukraine[data-module='ga4-link-tracker']", false
assert_select ".gem-c-contextual-sidebar .gem-c-contextual-sidebar__cta--ukraine .govuk-link[data-ga4-link]", false
end
end