Skip to content

Commit d564f9f

Browse files
committed
add test box steps
1 parent 910ff40 commit d564f9f

File tree

2 files changed

+73
-18
lines changed

2 files changed

+73
-18
lines changed

tests/e2e/feature-flags.spec.ts

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { test, expect } from '@wordpress/e2e-test-utils-playwright';
22
import { ERROR_FLAG_EXISTS, ERROR_FLAG_INVALID } from '../../src/constants';
3+
import { AddNewFlag, AddNewFlagAndFill, DisableFlag, SaveFlags, deleteLastFlag } from './helper';
34

45
// eslint-disable-next-line
56
test.use({ storageState: process.env.WP_AUTH_STORAGE });
@@ -19,20 +20,16 @@ test.describe('Feature flags', () => {
1920

2021
test('Create and delete flags e2e scenarios', async ({ page }) => {
2122
//Create new flag
22-
await page.getByRole('button', { name: 'Add Flag' }).click();
23-
await page.getByRole('textbox').last().fill('test');
24-
await page.getByRole('button', { name: 'Save' }).click();
23+
await AddNewFlagAndFill(page, 'test');
24+
await SaveFlags(page);
25+
2526
//Confirm save success
2627
expect(
2728
await page.getByLabel('Dismiss this notice').innerText()
2829
).toMatch(/Saved successfully!/);
2930

30-
//Toggle feature flag
31-
await page
32-
.locator('id=mr-feature-flag-item')
33-
.last()
34-
.getByLabel('Flag enabled')
35-
.click();
31+
await DisableFlag(page, true);
32+
3633
expect(
3734
await page.getByLabel('Dismiss this notice').innerText()
3835
).toMatch(/Saved successfully!/);
@@ -44,13 +41,12 @@ test.describe('Feature flags', () => {
4441
).toBeVisible();
4542

4643
//Create another flag with same name
47-
await page.getByRole('button', { name: 'Add Flag' }).click();
48-
await page.getByRole('textbox').last().fill('test');
44+
await AddNewFlagAndFill(page, 'test');
4945
expect(page.getByText(ERROR_FLAG_EXISTS)).toBeVisible();
5046
expect(page.getByRole('button', { name: 'Save' })).toBeDisabled();
5147

5248
//update flag name to be unique and check text validation.
53-
await page.getByRole('textbox').last().fill('test 2');
49+
await AddNewFlag(page, 'test 2');
5450
expect(page.getByText(ERROR_FLAG_INVALID)).toBeVisible();
5551
expect(page.getByRole('button', { name: 'Save' })).toBeDisabled();
5652

@@ -60,6 +56,7 @@ test.describe('Feature flags', () => {
6056
.last()
6157
.getByLabel('Delete Flag')
6258
.click();
59+
// await deleteLastFlag(page);
6360
await page.getByRole('button', { name: 'Yes' }).click();
6461
//Confirm delete success
6562
expect(
@@ -91,11 +88,6 @@ test.describe('Feature flags', () => {
9188
await page.locator('button[aria-label="Close"]').click();
9289

9390
//Delete the created flag
94-
await page
95-
.locator('id=mr-feature-flag-item')
96-
.last()
97-
.getByLabel('Delete Flag')
98-
.click();
99-
await page.getByRole('button', { name: 'Yes' }).click();
91+
await deleteLastFlag(page);
10092
});
10193
});

tests/e2e/helper/index.ts

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { test } from '@wordpress/e2e-test-utils-playwright';
2+
import { Page } from '@playwright/test';
3+
4+
export async function deleteLastFlag(page: Page) {
5+
await test.step(
6+
'Delete last flag',
7+
async () => {
8+
await page
9+
.locator('id=mr-feature-flag-item')
10+
.last()
11+
.getByLabel('Delete Flag')
12+
.click();
13+
await page.getByRole('button', { name: 'Yes' }).click();
14+
},
15+
{ box: true }
16+
);
17+
}
18+
19+
export async function AddNewFlag(page: Page, text: string) {
20+
await test.step(
21+
'Add new flag',
22+
async () => {
23+
await page.getByRole('textbox').last().fill(text);
24+
},
25+
{ box: true }
26+
);
27+
}
28+
29+
export async function AddNewFlagAndFill(page: Page, text: string) {
30+
await test.step(
31+
'Add new flag and fill text',
32+
async () => {
33+
await page.getByRole('button', { name: 'Add Flag' }).click();
34+
await page.getByRole('textbox').last().fill(text);
35+
},
36+
{ box: true }
37+
);
38+
}
39+
40+
export async function SaveFlags(page: Page) {
41+
await test.step(
42+
'Save flags',
43+
async () => {
44+
await page.getByRole('button', { name: 'Save' }).click();
45+
},
46+
{ box: true }
47+
);
48+
}
49+
50+
export async function DisableFlag(page: Page, isEnabled: boolean) {
51+
await test.step(
52+
'Toggle flag',
53+
async () => {
54+
const labelText = isEnabled ? 'Flag enabled' : 'Flag disabled';
55+
await page
56+
.locator('id=mr-feature-flag-item')
57+
.last()
58+
.getByLabel(labelText)
59+
.click();
60+
},
61+
{ box: true }
62+
);
63+
}

0 commit comments

Comments
 (0)