Skip to content

Commit 27542eb

Browse files
authored
feat(e2e): Convert cy to pw test suite settings/safety-checks.test.ts (#15886)
1 parent df0159b commit 27542eb

File tree

2 files changed

+72
-75
lines changed

2 files changed

+72
-75
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import { test, expect } from '../../support/fixtures';
2+
3+
test.describe('Safety Checks Settings', { tag: ['@group=settings'] }, () => {
4+
test.use({ emulatorStartConf: { wipe: true } });
5+
test.beforeEach(async ({ onboardingPage, settingsPage }) => {
6+
await onboardingPage.completeOnboarding();
7+
await settingsPage.navigateTo();
8+
await settingsPage.deviceTabButton.click();
9+
});
10+
11+
test('There is button in device settings, that opens safety checks modal.', async ({
12+
window: page,
13+
}) => {
14+
await page.getByTestId('@settings/device/safety-checks-button').click();
15+
await expect(page.getByTestId('@safety-checks-apply')).toBeVisible();
16+
});
17+
18+
test('Only one level is selected at a time', async ({ window: page }) => {
19+
// Open the safety checks modal.
20+
await page.getByTestId('@settings/device/safety-checks-button').click();
21+
22+
// There should be two radio buttons, one checked and one not.
23+
await expect(page.locator('[data-testid*="@radio-button"]')).toHaveCount(2);
24+
await expect(
25+
page.locator('[data-testid*="@radio-button"][data-checked="true"]'),
26+
).toHaveCount(1);
27+
await expect(
28+
page.locator('[data-testid*="@radio-button"][data-checked="false"]'),
29+
).toHaveCount(1);
30+
31+
await page.locator('[data-testid*="@radio-button"][data-checked="false"]').click();
32+
// After switching the value, there should still be one checked and one unchecked.
33+
await expect(
34+
page.locator('[data-testid*="@radio-button"][data-checked="true"]'),
35+
).toHaveCount(1);
36+
await expect(
37+
page.locator('[data-testid*="@radio-button"][data-checked="false"]'),
38+
).toHaveCount(1);
39+
});
40+
41+
test('Apply button is enabled only when value is changed', async ({ window: page }) => {
42+
// Open the safety checks modal.
43+
await page.getByTestId('@settings/device/safety-checks-button').click();
44+
45+
await expect(page.getByTestId('@safety-checks-apply')).toBeDisabled();
46+
await page.locator('[data-testid*="@radio-button"][data-checked="false"]').click();
47+
await expect(page.getByTestId('@safety-checks-apply')).not.toBeDisabled();
48+
});
49+
50+
test('Device safety_check setting is changed after pressing the apply button', async ({
51+
window: page,
52+
trezorUserEnvLink,
53+
}) => {
54+
await page.getByTestId('@settings/device/safety-checks-button').click();
55+
// Don't assume the device is set to any particular value.
56+
// Just switch to the one that is not currently checked.
57+
await page.locator('[data-testid*="@radio-button"][data-checked="false"]').click();
58+
const targetValue = await page
59+
.locator('[data-testid*="@radio-button"][data-checked="true"]')
60+
.getAttribute('data-testid');
61+
if (!targetValue) {
62+
throw new Error('Target value not found');
63+
}
64+
// Changing safety_checks to targetValue
65+
await page.getByTestId('@safety-checks-apply').click();
66+
await expect(page.getByTestId('@prompts/confirm-on-device')).toBeVisible();
67+
await trezorUserEnvLink.pressYes();
68+
69+
await page.getByTestId('@settings/device/safety-checks-button').click();
70+
await expect(page.getByTestId(targetValue)).toHaveAttribute('data-checked', 'true');
71+
});
72+
});

packages/suite-web/e2e/tests/settings/safety-checks.test.ts

Lines changed: 0 additions & 75 deletions
This file was deleted.

0 commit comments

Comments
 (0)