Skip to content

Commit fa976ff

Browse files
committed
Fix missing hidden CSS class
A CSS class of 'hidden' is referenced but no longer present causing all UNAVAILABLE statuses to be visible on the page. Replace 'hidden' class with GOV.UK 'govuk-!-display-none' class from the GOV.UK components gem.
1 parent ca54435 commit fa976ff

File tree

3 files changed

+32
-32
lines changed

3 files changed

+32
-32
lines changed

app/assets/javascripts/webchat/library.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@
9191
function advisorStateChange (state) {
9292
state = state.toLowerCase()
9393
var currentState = $el.find('.' + webchatStateClass + state)
94-
$el.find('[class^="' + webchatStateClass + '"]').addClass('hidden')
95-
currentState.removeClass('hidden')
94+
$el.find('[class^="' + webchatStateClass + '"]').addClass('govuk-!-display-none')
95+
currentState.removeClass('govuk-!-display-none')
9696
trackEvent(state)
9797
}
9898

app/views/shared/_webchat.html.erb

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
<span class="js-webchat-advisers-error">
1313
<%= t("shared.webchat.technical_problem") %>
1414
</span>
15-
<span class="js-webchat-advisers-unavailable hidden">
15+
<span class="js-webchat-advisers-unavailable govuk-!-display-none">
1616
<%= t("shared.webchat.closed") %>
1717
</span>
18-
<span class="js-webchat-advisers-busy hidden">
18+
<span class="js-webchat-advisers-busy govuk-!-display-none">
1919
<%= t("shared.webchat.busy") %>
2020
</span>
21-
<span class="js-webchat-advisers-available hidden">
21+
<span class="js-webchat-advisers-available govuk-!-display-none">
2222
<%= t("shared.webchat.available") %>
2323
<a href="#" data-redirect="<%= @content_item.webchat.open_url_redirect.present? ? 'true' : 'false' %>" rel="external" class="js-webchat-open-button"><%= t("shared.webchat.speak_to_adviser") %></a>.
2424
</span>

spec/javascripts/webchat.spec.js

+27-27
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ describe('Webchat', function () {
1212

1313
var INSERTION_HOOK = '<div class="js-webchat" data-availability-url="' + CHILD_BENEFIT_API_URL + '" data-open-url="' + CHILD_BENEFIT_API_URL + '" data-redirect="true">' +
1414
'<div class="js-webchat-advisers-error">Error</div>' +
15-
'<div class="js-webchat-advisers-unavailable hidden">Unavailable</div>' +
16-
'<div class="js-webchat-advisers-busy hidden">Busy</div>' +
17-
'<div class="js-webchat-advisers-available hidden">' +
15+
'<div class="js-webchat-advisers-unavailable govuk-!-display-none">Unavailable</div>' +
16+
'<div class="js-webchat-advisers-busy govuk-!-display-none">Busy</div>' +
17+
'<div class="js-webchat-advisers-available govuk-!-display-none">' +
1818
'Available, <div class="js-webchat-open-button">chat now</div>' +
1919
'</div>' +
2020
'</div>'
@@ -69,47 +69,47 @@ describe('Webchat', function () {
6969
options.success(jsonNormalisedAvailable)
7070
})
7171
mount()
72-
expect($advisersAvailable.hasClass('hidden')).toBe(false)
72+
expect($advisersAvailable.hasClass('govuk-!-display-none')).toBe(false)
7373

74-
expect($advisersBusy.hasClass('hidden')).toBe(true)
75-
expect($advisersError.hasClass('hidden')).toBe(true)
76-
expect($advisersUnavailable.hasClass('hidden')).toBe(true)
74+
expect($advisersBusy.hasClass('govuk-!-display-none')).toBe(true)
75+
expect($advisersError.hasClass('govuk-!-display-none')).toBe(true)
76+
expect($advisersUnavailable.hasClass('govuk-!-display-none')).toBe(true)
7777
})
7878

7979
it('should inform user whether advisors are unavailable', function () {
8080
spyOn($, 'ajax').and.callFake(function (options) {
8181
options.success(jsonNormalisedUnavailable)
8282
})
8383
mount()
84-
expect($advisersUnavailable.hasClass('hidden')).toBe(false)
84+
expect($advisersUnavailable.hasClass('govuk-!-display-none')).toBe(false)
8585

86-
expect($advisersAvailable.hasClass('hidden')).toBe(true)
87-
expect($advisersBusy.hasClass('hidden')).toBe(true)
88-
expect($advisersError.hasClass('hidden')).toBe(true)
86+
expect($advisersAvailable.hasClass('govuk-!-display-none')).toBe(true)
87+
expect($advisersBusy.hasClass('govuk-!-display-none')).toBe(true)
88+
expect($advisersError.hasClass('govuk-!-display-none')).toBe(true)
8989
})
9090

9191
it('should inform user whether advisors are busy', function () {
9292
spyOn($, 'ajax').and.callFake(function (options) {
9393
options.success(jsonNormalisedBusy)
9494
})
9595
mount()
96-
expect($advisersBusy.hasClass('hidden')).toBe(false)
96+
expect($advisersBusy.hasClass('govuk-!-display-none')).toBe(false)
9797

98-
expect($advisersAvailable.hasClass('hidden')).toBe(true)
99-
expect($advisersError.hasClass('hidden')).toBe(true)
100-
expect($advisersUnavailable.hasClass('hidden')).toBe(true)
98+
expect($advisersAvailable.hasClass('govuk-!-display-none')).toBe(true)
99+
expect($advisersError.hasClass('govuk-!-display-none')).toBe(true)
100+
expect($advisersUnavailable.hasClass('govuk-!-display-none')).toBe(true)
101101
})
102102

103103
it('should inform user whether there was an error', function () {
104104
spyOn($, 'ajax').and.callFake(function (options) {
105105
options.success(jsonNormalisedError)
106106
})
107107
mount()
108-
expect($advisersError.hasClass('hidden')).toBe(false)
108+
expect($advisersError.hasClass('govuk-!-display-none')).toBe(false)
109109

110-
expect($advisersAvailable.hasClass('hidden')).toBe(true)
111-
expect($advisersBusy.hasClass('hidden')).toBe(true)
112-
expect($advisersUnavailable.hasClass('hidden')).toBe(true)
110+
expect($advisersAvailable.hasClass('govuk-!-display-none')).toBe(true)
111+
expect($advisersBusy.hasClass('govuk-!-display-none')).toBe(true)
112+
expect($advisersUnavailable.hasClass('govuk-!-display-none')).toBe(true)
113113
})
114114

115115
it('should only track once per state change', function () {
@@ -136,18 +136,18 @@ describe('Webchat', function () {
136136
})
137137

138138
mount()
139-
expect($advisersAvailable.hasClass('hidden')).toBe(false)
139+
expect($advisersAvailable.hasClass('govuk-!-display-none')).toBe(false)
140140

141-
expect($advisersBusy.hasClass('hidden')).toBe(true)
142-
expect($advisersError.hasClass('hidden')).toBe(true)
143-
expect($advisersUnavailable.hasClass('hidden')).toBe(true)
141+
expect($advisersBusy.hasClass('govuk-!-display-none')).toBe(true)
142+
expect($advisersError.hasClass('govuk-!-display-none')).toBe(true)
143+
expect($advisersUnavailable.hasClass('govuk-!-display-none')).toBe(true)
144144

145145
clock.tick(POLL_INTERVAL)
146146

147-
expect($advisersError.hasClass('hidden')).toBe(false)
148-
expect($advisersAvailable.hasClass('hidden')).toBe(true)
149-
expect($advisersBusy.hasClass('hidden')).toBe(true)
150-
expect($advisersUnavailable.hasClass('hidden')).toBe(true)
147+
expect($advisersError.hasClass('govuk-!-display-none')).toBe(false)
148+
expect($advisersAvailable.hasClass('govuk-!-display-none')).toBe(true)
149+
expect($advisersBusy.hasClass('govuk-!-display-none')).toBe(true)
150+
expect($advisersUnavailable.hasClass('govuk-!-display-none')).toBe(true)
151151
expect(analyticsCalled).toBe(2)
152152
expect(analyticsReceived).toEqual(analyticsExpects)
153153
clock.tick(POLL_INTERVAL)

0 commit comments

Comments
 (0)