/
feedback_spec.rb
77 lines (54 loc) · 2.88 KB
/
feedback_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
74
75
76
77
require "rails_helper"
describe "Feedback", type: :view do
def component_name
"feedback"
end
it "asks the user if the page is useful without javascript enabled" do
render_component({})
assert_select ".gem-c-feedback .gem-c-feedback__option-list-item .js-page-is-useful", text: "Yes this page is useful"
assert_select ".gem-c-feedback .gem-c-feedback__option-list-item .js-page-is-not-useful", text: "No this page is not useful"
end
it "asks the user if there is anything wrong with the page without javascript enabled" do
render_component({})
assert_select ".gem-c-feedback .gem-c-feedback__prompt-link.js-something-is-wrong", text: "Report a problem with this page"
end
it "has required email survey signup link" do
render_component({})
assert_select ".gem-c-feedback #survey-wrapper a.govuk-link"
end
describe "ASCII characters" do
let(:ascii_url) { "http://www.test.com/test?áscii=%EE%90%80".force_encoding("ASCII-8BIT") }
let(:utf8_url) { ascii_url.encode }
before do
allow_any_instance_of(ActionDispatch::Request).to receive(:original_url).and_return(ascii_url)
end
it "encodes URL params to UTF-8" do
render_component({})
expect(response.body).to include(utf8_url)
end
end
it "has GA4 tracking" do
render_component({})
assert_select ".gem-c-feedback[data-module='feedback ga4-event-tracker']"
# Yes button
assert_select ".js-page-is-useful[data-ga4-event='{\"event_name\":\"form_submit\",\"type\":\"feedback\",\"text\":\"Yes\",\"section\":\"Is this page useful?\",\"tool_name\":\"Is this page useful?\"}']"
# No button
assert_select ".js-page-is-not-useful[data-ga4-event='{\"event_name\":\"form_submit\",\"type\":\"feedback\",\"text\":\"No\",\"section\":\"Is this page useful?\",\"tool_name\":\"Is this page useful?\"}']"
# Report a problem button
assert_select ".js-something-is-wrong[data-ga4-event='{\"event_name\":\"form_submit\",\"type\":\"feedback\",\"text\":\"Report a problem with this page\",\"section\":\"Is this page useful?\",\"tool_name\":\"Is this page useful?\"}']"
# Report a problem submit
assert_select ".govuk-button[data-ga4-event='{\"event_name\":\"form_submit\",\"type\":\"feedback\",\"text\":\"Send\",\"section\":\"Help us improve GOV.UK\",\"tool_name\":\"Help us improve GOV.UK\"}']"
end
it "can have its GA4 tracking disabled" do
render_component({ disable_ga4: true })
assert_select ".gem-c-feedback[data-module='feedback ga4-event-tracker']", false
# Yes button
assert_select ".js-page-is-useful[data-ga4-event]", false
# No button
assert_select ".js-page-is-not-useful[data-ga4-event]", false
# Report a problem button
assert_select ".js-something-is-wrong[data-ga4-event]", false
# Report a problem submit / Send me the survey submit
assert_select ".govuk-button[data-ga4-event]", false
end
end