@ministryofjustice/frontend 3.3.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +4 -10
  2. package/govuk-prototype-kit.config.json +5 -16
  3. package/moj/all.jquery.min.js +77 -3
  4. package/moj/all.js +2021 -1436
  5. package/moj/all.scss +2 -0
  6. package/moj/all.spec.js +15 -13
  7. package/moj/components/_all.scss +1 -0
  8. package/moj/components/action-bar/_action-bar.scss +4 -6
  9. package/moj/components/add-another/_add-another.scss +9 -7
  10. package/moj/components/add-another/add-another.js +90 -69
  11. package/moj/components/add-another/add-another.spec.js +165 -0
  12. package/moj/components/alert/README.md +0 -0
  13. package/moj/components/alert/_alert.scss +142 -0
  14. package/moj/components/alert/alert.js +247 -0
  15. package/moj/components/alert/alert.spec.helper.js +67 -0
  16. package/moj/components/alert/alert.spec.js +229 -0
  17. package/moj/components/alert/macro.njk +3 -0
  18. package/moj/components/alert/template.njk +83 -0
  19. package/moj/components/badge/_badge.scss +3 -4
  20. package/moj/components/banner/_banner.scss +5 -10
  21. package/moj/components/button-menu/_button-menu.scss +10 -9
  22. package/moj/components/button-menu/button-menu.js +139 -136
  23. package/moj/components/button-menu/button-menu.spec.js +295 -296
  24. package/moj/components/cookie-banner/_cookie-banner.scss +6 -5
  25. package/moj/components/currency-input/_currency-input.scss +4 -4
  26. package/moj/components/date-picker/README.md +14 -17
  27. package/moj/components/date-picker/_date-picker.scss +122 -106
  28. package/moj/components/date-picker/date-picker.js +473 -471
  29. package/moj/components/date-picker/date-picker.spec.js +971 -923
  30. package/moj/components/filter/README.md +1 -1
  31. package/moj/components/filter/_filter.scss +53 -75
  32. package/moj/components/filter-toggle-button/filter-toggle-button.js +71 -67
  33. package/moj/components/filter-toggle-button/filter-toggle-button.spec.js +203 -205
  34. package/moj/components/form-validator/form-validator.js +117 -109
  35. package/moj/components/header/_header.scss +17 -19
  36. package/moj/components/identity-bar/_identity-bar.scss +5 -5
  37. package/moj/components/interruption-card/_interruption-card.scss +2 -2
  38. package/moj/components/messages/_messages.scss +12 -19
  39. package/moj/components/multi-file-upload/README.md +1 -1
  40. package/moj/components/multi-file-upload/_multi-file-upload.scss +34 -30
  41. package/moj/components/multi-file-upload/multi-file-upload.js +188 -152
  42. package/moj/components/multi-file-upload/multi-file-upload.spec.js +510 -0
  43. package/moj/components/multi-select/_multi-select.scss +4 -3
  44. package/moj/components/multi-select/multi-select.js +55 -50
  45. package/moj/components/multi-select/multi-select.spec.js +72 -79
  46. package/moj/components/notification-badge/_notification-badge.scss +12 -12
  47. package/moj/components/organisation-switcher/_organisation-switcher.scss +1 -1
  48. package/moj/components/page-header-actions/_page-header-actions.scss +3 -2
  49. package/moj/components/pagination/_pagination.scss +26 -31
  50. package/moj/components/password-reveal/_password-reveal.scss +1 -2
  51. package/moj/components/password-reveal/password-reveal.js +22 -21
  52. package/moj/components/password-reveal/password-reveal.spec.js +39 -37
  53. package/moj/components/primary-navigation/_primary-navigation.scss +26 -29
  54. package/moj/components/progress-bar/_progress-bar.scss +21 -26
  55. package/moj/components/rich-text-editor/_rich-text-editor.scss +17 -16
  56. package/moj/components/rich-text-editor/rich-text-editor.js +117 -103
  57. package/moj/components/search/_search.scss +6 -4
  58. package/moj/components/search-toggle/search-toggle.js +29 -30
  59. package/moj/components/search-toggle/search-toggle.scss +21 -15
  60. package/moj/components/search-toggle/search-toggle.spec.js +65 -70
  61. package/moj/components/side-navigation/_side-navigation.scss +12 -21
  62. package/moj/components/sortable-table/_sortable-table.scss +25 -23
  63. package/moj/components/sortable-table/sortable-table.js +139 -117
  64. package/moj/components/sortable-table/sortable-table.spec.js +362 -0
  65. package/moj/components/sub-navigation/_sub-navigation.scss +24 -28
  66. package/moj/components/tag/_tag.scss +8 -9
  67. package/moj/components/task-list/_task-list.scss +8 -7
  68. package/moj/components/ticket-panel/_ticket-panel.scss +14 -6
  69. package/moj/components/timeline/_timeline.scss +18 -20
  70. package/moj/filters/all.js +28 -30
  71. package/moj/filters/prototype-kit-13-filters.js +2 -1
  72. package/moj/helpers/_all.scss +1 -0
  73. package/moj/helpers/_hidden.scss +1 -1
  74. package/moj/helpers/_links.scss +20 -0
  75. package/moj/helpers.js +160 -31
  76. package/moj/helpers.spec.js +235 -0
  77. package/moj/init.js +2 -2
  78. package/moj/moj-frontend.min.css +2 -2
  79. package/moj/moj-frontend.min.js +77 -3
  80. package/moj/namespace.js +2 -1
  81. package/moj/objects/_filter-layout.scss +11 -10
  82. package/moj/objects/_scrollable-pane.scss +11 -14
  83. package/moj/settings/_colours.scss +5 -0
  84. package/moj/settings/_measurements.scss +0 -2
  85. package/moj/utilities/_hidden.scss +3 -3
  86. package/moj/utilities/_width-container.scss +1 -1
  87. package/package.json +1 -1
@@ -1,23 +1,23 @@
1
- const {
2
- queryByRole,
3
- } = require("@testing-library/dom");
4
- const { userEvent } = require("@testing-library/user-event");
5
- const { configureAxe } = require("jest-axe");
6
- const merge = require("lodash.merge");
7
- const { setMedia } = require("mock-match-media");
1
+ /* eslint-disable no-new */
8
2
 
9
- require("./filter-toggle-button.js");
3
+ const { queryByRole } = require('@testing-library/dom')
4
+ const { userEvent } = require('@testing-library/user-event')
5
+ const { configureAxe } = require('jest-axe')
6
+ const merge = require('lodash/merge')
7
+ const { setMedia } = require('mock-match-media')
10
8
 
11
- const user = userEvent.setup();
9
+ require('./filter-toggle-button.js')
10
+
11
+ const user = userEvent.setup()
12
12
  const axe = configureAxe({
13
13
  rules: {
14
14
  // disable landmark rules when testing isolated components.
15
- region: { enabled: false },
16
- },
17
- });
15
+ region: { enabled: false }
16
+ }
17
+ })
18
18
 
19
19
  const createTemplate = () => {
20
- html = `
20
+ const html = `
21
21
  <div class="moj-filter">
22
22
  <div class="moj-filter__header">
23
23
  <div class="moj-filter__header-title">
@@ -28,277 +28,275 @@ const createTemplate = () => {
28
28
  </div>
29
29
  <div class="moj-action-bar">
30
30
  <div class="moj-action-bar__filter"></div>
31
- </div>`;
32
- document.body.insertAdjacentHTML("afterbegin", html);
31
+ </div>`
32
+ document.body.insertAdjacentHTML('afterbegin', html)
33
33
 
34
- const buttonContainer = document.querySelector(".moj-action-bar__filter");
34
+ const buttonContainer = document.querySelector('.moj-action-bar__filter')
35
35
  const closeButtonContainer = document.querySelector(
36
- ".moj-filter__header-action",
37
- );
38
- const filterContainer = document.querySelector(".moj-filter");
36
+ '.moj-filter__header-action'
37
+ )
38
+ const filterContainer = document.querySelector('.moj-filter')
39
39
 
40
40
  return {
41
- buttonContainer: buttonContainer,
42
- closeButtonContainer: closeButtonContainer,
43
- filterContainer: filterContainer,
44
- };
45
- };
41
+ buttonContainer,
42
+ closeButtonContainer,
43
+ filterContainer
44
+ }
45
+ }
46
46
 
47
- let baseConfig;
47
+ let baseConfig
48
48
 
49
49
  beforeEach(() => {
50
50
  baseConfig = {
51
- bigModeMediaQuery: "(min-width: 600px)",
51
+ bigModeMediaQuery: '(min-width: 600px)',
52
52
  startHidden: true,
53
53
  toggleButton: {
54
- container: document.querySelector(".moj-action-bar__filter"),
55
- showText: "Show filter",
56
- hideText: "Hide filter",
57
- classes: "govuk-button--secondary",
54
+ container: document.querySelector('.moj-action-bar__filter'),
55
+ showText: 'Show filter',
56
+ hideText: 'Hide filter',
57
+ classes: 'govuk-button--secondary'
58
58
  },
59
59
  closeButton: {
60
- container: document.querySelector(".moj-filter__header-action"),
61
- text: "Close",
60
+ container: document.querySelector('.moj-filter__header-action'),
61
+ text: 'Close'
62
62
  },
63
63
  filter: {
64
- container: document.querySelector(".moj-filter"),
65
- },
66
- };
67
- });
64
+ container: document.querySelector('.moj-filter')
65
+ }
66
+ }
67
+ })
68
68
 
69
- describe("Filter toggle in big mode", () => {
70
- let defaultConfig, buttonContainer, closeButtonContainer, filterContainer;
69
+ describe('Filter toggle in big mode', () => {
70
+ let defaultConfig, buttonContainer, filterContainer
71
71
 
72
72
  beforeEach(() => {
73
73
  setMedia({
74
- width: "800px",
75
- });
76
-
77
- ({ buttonContainer, closeButtonContainer, filterContainer } = createTemplate());
74
+ width: '800px'
75
+ })
76
+ ;({ buttonContainer, filterContainer } = createTemplate())
78
77
 
79
78
  defaultConfig = merge(baseConfig, {
80
79
  toggleButton: {
81
- container: document.querySelector(".moj-action-bar__filter"),
80
+ container: document.querySelector('.moj-action-bar__filter')
82
81
  },
83
82
  closeButton: {
84
- container: document.querySelector(".moj-filter__header-action"),
83
+ container: document.querySelector('.moj-filter__header-action')
85
84
  },
86
- filter: { container: document.querySelector(".moj-filter") },
87
- });
88
- });
85
+ filter: { container: document.querySelector('.moj-filter') }
86
+ })
87
+ })
89
88
 
90
89
  afterEach(() => {
91
- document.body.innerHTML = "";
92
- });
90
+ document.body.innerHTML = ''
91
+ })
93
92
 
94
- test("creates toggle button", () => {
95
- new MOJFrontend.FilterToggleButton(defaultConfig);
96
- const toggleButton = queryByRole(buttonContainer, "button");
93
+ test('creates toggle button', () => {
94
+ new MOJFrontend.FilterToggleButton(defaultConfig)
95
+ const toggleButton = queryByRole(buttonContainer, 'button')
97
96
 
98
- expect(toggleButton).not.toBeNull();
99
- expect(toggleButton.innerHTML).toBe("Show filter");
100
- expect(toggleButton).toHaveAttribute("aria-expanded", "false");
101
- expect(toggleButton).toHaveClass("govuk-button--secondary");
97
+ expect(toggleButton).toBeInTheDocument()
98
+ expect(toggleButton.innerHTML).toBe('Show filter')
99
+ expect(toggleButton).toHaveAttribute('aria-expanded', 'false')
100
+ expect(toggleButton).toHaveClass('govuk-button--secondary')
102
101
 
103
- expect(filterContainer).toHaveAttribute("tabindex", "-1");
104
- expect(filterContainer).toHaveClass("moj-js-hidden");
105
- });
102
+ expect(filterContainer).toHaveAttribute('tabindex', '-1')
103
+ expect(filterContainer).toHaveClass('moj-js-hidden')
104
+ })
106
105
 
107
- test("toggle button reveals filters", async () => {
108
- new MOJFrontend.FilterToggleButton(defaultConfig);
109
- const toggleButton = queryByRole(buttonContainer, "button");
106
+ test('toggle button reveals filters', async () => {
107
+ new MOJFrontend.FilterToggleButton(defaultConfig)
108
+ const toggleButton = queryByRole(buttonContainer, 'button')
110
109
 
111
- expect(filterContainer).toHaveAttribute("tabindex", "-1");
112
- expect(filterContainer).toHaveClass("moj-js-hidden");
110
+ expect(filterContainer).toHaveAttribute('tabindex', '-1')
111
+ expect(filterContainer).toHaveClass('moj-js-hidden')
113
112
 
114
- await user.click(toggleButton);
113
+ await user.click(toggleButton)
115
114
 
116
- expect(toggleButton).toHaveAttribute("aria-expanded", "true");
117
- expect(toggleButton.innerHTML).toBe("Hide filter");
118
- expect(filterContainer).not.toHaveClass("moj-js-hidden");
119
- expect(filterContainer).toHaveFocus();
115
+ expect(toggleButton).toHaveAttribute('aria-expanded', 'true')
116
+ expect(toggleButton.innerHTML).toBe('Hide filter')
117
+ expect(filterContainer).not.toHaveClass('moj-js-hidden')
118
+ expect(filterContainer).toHaveFocus()
120
119
 
121
- await user.click(toggleButton);
120
+ await user.click(toggleButton)
122
121
 
123
- expect(toggleButton).toHaveAttribute("aria-expanded", "false");
124
- expect(toggleButton.innerHTML).toBe("Show filter");
125
- expect(filterContainer).toHaveClass("moj-js-hidden");
122
+ expect(toggleButton).toHaveAttribute('aria-expanded', 'false')
123
+ expect(toggleButton.innerHTML).toBe('Show filter')
124
+ expect(filterContainer).toHaveClass('moj-js-hidden')
126
125
 
127
- expect(toggleButton).toHaveFocus();
128
- });
126
+ expect(toggleButton).toHaveFocus()
127
+ })
129
128
 
130
- test("start visible", () => {
131
- const config = merge(defaultConfig, { startHidden: false });
132
- new MOJFrontend.FilterToggleButton(config);
133
- const toggleButton = queryByRole(buttonContainer, "button");
129
+ test('start visible', () => {
130
+ const config = merge(defaultConfig, { startHidden: false })
131
+ new MOJFrontend.FilterToggleButton(config)
132
+ const toggleButton = queryByRole(buttonContainer, 'button')
134
133
 
135
- expect(toggleButton.innerHTML).toBe("Hide filter");
136
- expect(filterContainer).not.toHaveClass("moj-js-hidden");
137
- });
134
+ expect(toggleButton.innerHTML).toBe('Hide filter')
135
+ expect(filterContainer).not.toHaveClass('moj-js-hidden')
136
+ })
138
137
 
139
- test("custom button text", async () => {
138
+ test('custom button text', async () => {
140
139
  const config = merge(defaultConfig, {
141
- toggleButton: { showText: "Custom label", hideText: "Hide me" },
142
- });
143
- new MOJFrontend.FilterToggleButton(config);
144
- const toggleButton = queryByRole(buttonContainer, "button");
140
+ toggleButton: { showText: 'Custom label', hideText: 'Hide me' }
141
+ })
142
+ new MOJFrontend.FilterToggleButton(config)
143
+ const toggleButton = queryByRole(buttonContainer, 'button')
145
144
 
146
- expect(toggleButton.innerHTML).toBe("Custom label");
147
- await user.click(toggleButton);
148
- expect(toggleButton.innerHTML).toBe("Hide me");
149
- });
145
+ expect(toggleButton.innerHTML).toBe('Custom label')
146
+ await user.click(toggleButton)
147
+ expect(toggleButton.innerHTML).toBe('Hide me')
148
+ })
150
149
 
151
- test("custom toggle button classes", () => {
150
+ test('custom toggle button classes', () => {
152
151
  const config = merge(defaultConfig, {
153
- toggleButton: { classes: "classname-1 classname-2" },
154
- });
155
- new MOJFrontend.FilterToggleButton(config);
156
- const toggleButton = queryByRole(buttonContainer, "button");
157
-
158
- expect(toggleButton).toHaveClass("classname-1 classname-2");
159
- });
160
-
161
- describe("accessibility", () => {
162
- test("component has no wcag violations", async () => {
163
- new MOJFrontend.FilterToggleButton(defaultConfig);
164
- const toggleButton = queryByRole(buttonContainer, "button");
165
- expect(await axe(document.body)).toHaveNoViolations();
166
- await user.click(toggleButton);
167
- expect(await axe(document.body)).toHaveNoViolations();
168
- });
169
- });
170
- });
171
-
172
- describe("Filter toggle in small mode", () => {
173
- let defaultConfig, buttonContainer, closeButtonContainer, filterContainer;
152
+ toggleButton: { classes: 'classname-1 classname-2' }
153
+ })
154
+ new MOJFrontend.FilterToggleButton(config)
155
+ const toggleButton = queryByRole(buttonContainer, 'button')
156
+
157
+ expect(toggleButton).toHaveClass('classname-1 classname-2')
158
+ })
159
+
160
+ describe('accessibility', () => {
161
+ test('component has no wcag violations', async () => {
162
+ new MOJFrontend.FilterToggleButton(defaultConfig)
163
+ const toggleButton = queryByRole(buttonContainer, 'button')
164
+ expect(await axe(document.body)).toHaveNoViolations()
165
+ await user.click(toggleButton)
166
+ expect(await axe(document.body)).toHaveNoViolations()
167
+ })
168
+ })
169
+ })
170
+
171
+ describe('Filter toggle in small mode', () => {
172
+ let defaultConfig, buttonContainer, closeButtonContainer, filterContainer
174
173
 
175
174
  beforeEach(() => {
176
175
  setMedia({
177
- width: "500px",
178
- });
179
-
180
- ({ buttonContainer, closeButtonContainer, filterContainer } = createTemplate()),
181
-
176
+ width: '500px'
177
+ })
178
+ ;({ buttonContainer, closeButtonContainer, filterContainer } =
179
+ createTemplate())
182
180
  defaultConfig = merge(baseConfig, {
183
181
  toggleButton: {
184
- container: document.querySelector(".moj-action-bar__filter"),
182
+ container: document.querySelector('.moj-action-bar__filter')
185
183
  },
186
184
  closeButton: {
187
- container: document.querySelector(".moj-filter__header-action"),
185
+ container: document.querySelector('.moj-filter__header-action')
188
186
  },
189
- filter: { container: document.querySelector(".moj-filter") },
190
- });
191
- });
187
+ filter: { container: document.querySelector('.moj-filter') }
188
+ })
189
+ })
192
190
 
193
191
  afterEach(() => {
194
- document.body.innerHTML = "";
195
- });
192
+ document.body.innerHTML = ''
193
+ })
196
194
 
197
- test("creates toggle button", () => {
198
- new MOJFrontend.FilterToggleButton(defaultConfig);
199
- const toggleButton = queryByRole(buttonContainer, "button");
195
+ test('creates toggle button', () => {
196
+ new MOJFrontend.FilterToggleButton(defaultConfig)
197
+ const toggleButton = queryByRole(buttonContainer, 'button')
200
198
 
201
- expect(toggleButton).not.toBeNull();
202
- expect(toggleButton.innerHTML).toBe("Show filter");
203
- expect(toggleButton).toHaveAttribute("aria-expanded", "false");
204
- expect(toggleButton).toHaveClass("govuk-button--secondary");
199
+ expect(toggleButton).toBeInTheDocument()
200
+ expect(toggleButton.innerHTML).toBe('Show filter')
201
+ expect(toggleButton).toHaveAttribute('aria-expanded', 'false')
202
+ expect(toggleButton).toHaveClass('govuk-button--secondary')
205
203
 
206
- expect(filterContainer).toHaveAttribute("tabindex", "-1");
207
- expect(filterContainer).toHaveClass("moj-js-hidden");
208
- });
204
+ expect(filterContainer).toHaveAttribute('tabindex', '-1')
205
+ expect(filterContainer).toHaveClass('moj-js-hidden')
206
+ })
209
207
 
210
- test("toggle button reveals filters", async () => {
211
- new MOJFrontend.FilterToggleButton(defaultConfig);
212
- const toggleButton = queryByRole(buttonContainer, "button");
208
+ test('toggle button reveals filters', async () => {
209
+ new MOJFrontend.FilterToggleButton(defaultConfig)
210
+ const toggleButton = queryByRole(buttonContainer, 'button')
213
211
 
214
- expect(filterContainer).toHaveAttribute("tabindex", "-1");
215
- expect(filterContainer).toHaveClass("moj-js-hidden");
212
+ expect(filterContainer).toHaveAttribute('tabindex', '-1')
213
+ expect(filterContainer).toHaveClass('moj-js-hidden')
216
214
 
217
- await user.click(toggleButton);
215
+ await user.click(toggleButton)
218
216
 
219
- expect(toggleButton).toHaveAttribute("aria-expanded", "true");
220
- expect(toggleButton.innerHTML).toBe("Hide filter");
221
- expect(filterContainer).not.toHaveClass("moj-js-hidden");
222
- expect(filterContainer).toHaveFocus();
217
+ expect(toggleButton).toHaveAttribute('aria-expanded', 'true')
218
+ expect(toggleButton.innerHTML).toBe('Hide filter')
219
+ expect(filterContainer).not.toHaveClass('moj-js-hidden')
220
+ expect(filterContainer).toHaveFocus()
223
221
 
224
- await user.click(toggleButton);
222
+ await user.click(toggleButton)
225
223
 
226
- expect(toggleButton).toHaveAttribute("aria-expanded", "false");
227
- expect(toggleButton.innerHTML).toBe("Show filter");
228
- expect(filterContainer).toHaveClass("moj-js-hidden");
224
+ expect(toggleButton).toHaveAttribute('aria-expanded', 'false')
225
+ expect(toggleButton.innerHTML).toBe('Show filter')
226
+ expect(filterContainer).toHaveClass('moj-js-hidden')
229
227
 
230
- expect(toggleButton).toHaveFocus();
231
- });
228
+ expect(toggleButton).toHaveFocus()
229
+ })
232
230
 
233
- test("start visible is ignored", () => {
234
- const config = merge(defaultConfig, { startHidden: false });
235
- new MOJFrontend.FilterToggleButton(config);
236
- const toggleButton = queryByRole(buttonContainer, "button");
231
+ test('start visible is ignored', () => {
232
+ const config = merge(defaultConfig, { startHidden: false })
233
+ new MOJFrontend.FilterToggleButton(config)
234
+ const toggleButton = queryByRole(buttonContainer, 'button')
237
235
 
238
- expect(toggleButton.innerHTML).toBe("Show filter");
239
- expect(filterContainer).toHaveClass("moj-js-hidden");
240
- });
236
+ expect(toggleButton.innerHTML).toBe('Show filter')
237
+ expect(filterContainer).toHaveClass('moj-js-hidden')
238
+ })
241
239
 
242
- test("adds a close button", async () => {
243
- const config = merge(defaultConfig, { startHidden: false });
244
- new MOJFrontend.FilterToggleButton(config);
245
- const toggleButton = queryByRole(buttonContainer, "button");
240
+ test('adds a close button', async () => {
241
+ const config = merge(defaultConfig, { startHidden: false })
242
+ new MOJFrontend.FilterToggleButton(config)
243
+ const toggleButton = queryByRole(buttonContainer, 'button')
246
244
 
247
- await user.click(toggleButton);
245
+ await user.click(toggleButton)
248
246
 
249
- const closeButton = queryByRole(closeButtonContainer, "button");
247
+ const closeButton = queryByRole(closeButtonContainer, 'button')
250
248
 
251
- expect(closeButton).not.toBeNull();
252
- expect(closeButton.innerHTML).toBe("Close");
253
- });
249
+ expect(closeButton).toBeInTheDocument()
250
+ expect(closeButton.innerHTML).toBe('Close')
251
+ })
254
252
 
255
- test("hides on resize from big to small", async () => {
253
+ test('hides on resize from big to small', async () => {
256
254
  setMedia({
257
- width: "800px",
258
- });
255
+ width: '800px'
256
+ })
259
257
 
260
- const config = merge(defaultConfig, { startHidden: false });
261
- new MOJFrontend.FilterToggleButton(config);
262
- const toggleButton = queryByRole(buttonContainer, "button");
258
+ const config = merge(defaultConfig, { startHidden: false })
259
+ new MOJFrontend.FilterToggleButton(config)
260
+ const toggleButton = queryByRole(buttonContainer, 'button')
263
261
 
264
- expect(toggleButton.innerHTML).toBe("Hide filter");
265
- expect(filterContainer).not.toHaveClass("moj-js-hidden");
262
+ expect(toggleButton.innerHTML).toBe('Hide filter')
263
+ expect(filterContainer).not.toHaveClass('moj-js-hidden')
266
264
 
267
265
  setMedia({
268
- width: "500px",
269
- });
266
+ width: '500px'
267
+ })
270
268
 
271
- expect(toggleButton.innerHTML).toBe("Show filter");
272
- expect(filterContainer).toHaveClass("moj-js-hidden");
273
- });
269
+ expect(toggleButton.innerHTML).toBe('Show filter')
270
+ expect(filterContainer).toHaveClass('moj-js-hidden')
271
+ })
274
272
 
275
- test("shows on resize from small to big", async () => {
273
+ test('shows on resize from small to big', async () => {
276
274
  setMedia({
277
- width: "500px",
278
- });
275
+ width: '500px'
276
+ })
279
277
 
280
- const config = merge(defaultConfig);
281
- new MOJFrontend.FilterToggleButton(config);
282
- const toggleButton = queryByRole(buttonContainer, "button");
278
+ const config = merge(defaultConfig)
279
+ new MOJFrontend.FilterToggleButton(config)
280
+ const toggleButton = queryByRole(buttonContainer, 'button')
283
281
 
284
- expect(toggleButton.innerHTML).toBe("Show filter");
285
- expect(filterContainer).toHaveClass("moj-js-hidden");
282
+ expect(toggleButton.innerHTML).toBe('Show filter')
283
+ expect(filterContainer).toHaveClass('moj-js-hidden')
286
284
 
287
285
  setMedia({
288
- width: "800px",
289
- });
290
-
291
- expect(toggleButton.innerHTML).toBe("Hide filter");
292
- expect(filterContainer).not.toHaveClass("moj-js-hidden");
293
- });
294
-
295
- describe("accessibility", () => {
296
- test("component has no wcag violations", async () => {
297
- new MOJFrontend.FilterToggleButton(defaultConfig);
298
- const toggleButton = queryByRole(buttonContainer, "button");
299
- expect(await axe(document.body)).toHaveNoViolations();
300
- await user.click(toggleButton);
301
- expect(await axe(document.body)).toHaveNoViolations();
302
- });
303
- });
304
- });
286
+ width: '800px'
287
+ })
288
+
289
+ expect(toggleButton.innerHTML).toBe('Hide filter')
290
+ expect(filterContainer).not.toHaveClass('moj-js-hidden')
291
+ })
292
+
293
+ describe('accessibility', () => {
294
+ test('component has no wcag violations', async () => {
295
+ new MOJFrontend.FilterToggleButton(defaultConfig)
296
+ const toggleButton = queryByRole(buttonContainer, 'button')
297
+ expect(await axe(document.body)).toHaveNoViolations()
298
+ await user.click(toggleButton)
299
+ expect(await axe(document.body)).toHaveNoViolations()
300
+ })
301
+ })
302
+ })