Skip to content

Commit 35c9fce

Browse files
committed
CCM-8308: update modal header every 5 seconds instead of every 1 second for screen readers
1 parent efbe321 commit 35c9fce

File tree

5 files changed

+15
-15
lines changed

5 files changed

+15
-15
lines changed

frontend/src/__tests__/components/molecules/LogoutWarningModal/LogoutWarningModal.test.tsx

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@ describe('LogoutWarningModal', () => {
127127

128128
const events = [
129129
{
130-
timeRemaining: 29,
131-
advanceTimersBySeconds: 31,
130+
timeRemaining: 25,
131+
advanceTimersBySeconds: 35,
132132
},
133133
{
134134
timeRemaining: 20,
135-
advanceTimersBySeconds: 9,
135+
advanceTimersBySeconds: 5,
136136
},
137137
{
138138
timeRemaining: 10,
@@ -142,10 +142,6 @@ describe('LogoutWarningModal', () => {
142142
timeRemaining: 5,
143143
advanceTimersBySeconds: 5,
144144
},
145-
{
146-
timeRemaining: 1,
147-
advanceTimersBySeconds: 4,
148-
},
149145
];
150146

151147
for (const { timeRemaining, advanceTimersBySeconds } of events) {
@@ -215,12 +211,12 @@ describe('LogoutWarningModal', () => {
215211

216212
act(() => {
217213
// advance timers by 32 seconds
218-
jest.advanceTimersByTime(32_000);
214+
jest.advanceTimersByTime(35_000);
219215
fireEvent.focus(document);
220216
});
221217

222218
expect(getByTestId('modal-header').innerHTML).toEqual(
223-
`For security reasons, you'll be signed out in 28 seconds.`
219+
`For security reasons, you'll be signed out in 25 seconds.`
224220
);
225221

226222
const clicked = fireEvent.click(getByTestId('modal-sign-in'));

frontend/src/components/layouts/client/client-layout.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ Amplify.configure(amplifyConfig, { ssr: true });
1414

1515
const config = {
1616
logoutInSeconds:
17-
Number(process.env.NEXT_PUBLIC_TIME_TILL_LOGOUT_SECONDS) || 30, // 15 minutes force logout
17+
Number(process.env.NEXT_PUBLIC_TIME_TILL_LOGOUT_SECONDS) || 900, // 15 minutes force logout
1818
promptTimeSeconds:
19-
Number(process.env.NEXT_PUBLIC_PROMPT_SECONDS_BEFORE_LOGOUT) || 20, // 2 minutes before logout
19+
Number(process.env.NEXT_PUBLIC_PROMPT_SECONDS_BEFORE_LOGOUT) || 120, // 2 minutes before logout
2020
};
2121

2222
export function ClientLayout({ children }: { children: React.ReactNode }) {

frontend/src/components/molecules/LogoutWarningModal/LogoutWarningModal.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ import { formatTime } from './format-time';
1212

1313
import styles from './LogoutWarningModal.module.scss';
1414

15+
// Note: This is 5 seconds because it gives a screen reader a chance to read out the full modal title.
16+
// Whereas with 1 second a screen reader doesn't get a chance to read out the whole modal and is jarring.
17+
const HEADING_UPDATE_INTERVAL = 5000;
18+
1519
export const LogoutWarningModal = ({
1620
promptBeforeLogoutSeconds,
1721
logoutInSeconds,
@@ -64,7 +68,7 @@ export const LogoutWarningModal = ({
6468
const remaining = Math.ceil(getRemainingTime() / 1000);
6569

6670
setRemainingTime(formatTime(remaining));
67-
}, 1000);
71+
}, HEADING_UPDATE_INTERVAL);
6872

6973
return () => {
7074
if (intervalRef.current) {

tests/test-team/template-mgmt-component-tests/template-mgmt-choose-page.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ test.describe('Choose Template Type Page', () => {
5858
}) => {
5959
const chooseTemplatePage = new TemplateMgmtChoosePage(page);
6060

61-
await chooseTemplatePage.loadPage('');
61+
await chooseTemplatePage.loadPage();
6262
await chooseTemplatePage.clickContinueButton();
6363

6464
await expect(page).toHaveURL(`${baseURL}/templates/choose-a-template-type`);

tests/test-team/template-mgmt-component-tests/template-mgmt-logout-warning.component.modal.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ test.describe('Logout warning', () => {
3636

3737
await dialog.getByRole('button', { name: 'Stay signed in' }).click();
3838

39-
await expect(dialog).not.toBeVisible();
39+
await expect(dialog).toBeHidden();
4040
});
4141

4242
test('logout warning should pop up and close after user clicks "Sign out"', async ({
@@ -54,7 +54,7 @@ test.describe('Logout warning', () => {
5454

5555
await dialog.getByRole('link', { name: 'Sign out' }).click();
5656

57-
await expect(dialog).not.toBeVisible();
57+
await expect(dialog).toBeHidden();
5858
});
5959

6060
test('logout warning should force logout after timeout', async ({ page }) => {

0 commit comments

Comments
 (0)