fix: few flaky e2e tests (#24690)
* fix: flaky e2e tests * fix one more flakes * update
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import type { Page } from "@playwright/test";
|
||||
import { expect } from "@playwright/test";
|
||||
import { submitAndWaitForResponse } from "playwright/lib/testUtils";
|
||||
|
||||
// Helper function to get text within a specific table column
|
||||
export const getByTableColumnText = (page: Page, columnId: string, text: string) =>
|
||||
@@ -142,11 +143,14 @@ export async function deleteSegment(page: Page, segmentName: string) {
|
||||
|
||||
await page.getByTestId("filter-segment-select-submenu-content").getByText("Delete").click();
|
||||
|
||||
await page
|
||||
.locator('[role="dialog"]')
|
||||
.filter({ hasText: "Delete Segment" })
|
||||
.getByRole("button", { name: "Delete" })
|
||||
.click();
|
||||
await submitAndWaitForResponse(page, "/api/trpc/filterSegments/delete?batch=1", {
|
||||
action: () =>
|
||||
page
|
||||
.locator('[role="dialog"]')
|
||||
.filter({ hasText: "Delete Segment" })
|
||||
.getByRole("button", { name: "Delete" })
|
||||
.click(),
|
||||
});
|
||||
|
||||
await page.keyboard.press("Escape");
|
||||
await expect(page.getByText("Filter segment deleted")).toBeVisible();
|
||||
@@ -156,7 +160,7 @@ export async function deleteSegment(page: Page, segmentName: string) {
|
||||
* List all available segments
|
||||
*/
|
||||
export async function listSegments(page: Page): Promise<string[]> {
|
||||
await page.getByTestId("filter-segment-select").click();
|
||||
await page.getByTestId("filter-segment-select").nth(0).click();
|
||||
|
||||
const menuItems = page.locator('[data-testid="filter-segment-select-content"] [role="menuitem"]');
|
||||
const count = await menuItems.count();
|
||||
|
||||
@@ -78,6 +78,7 @@ test.describe("Filter Segment Functionality", () => {
|
||||
|
||||
await test.step("Can delete a filter segment", async () => {
|
||||
await deleteSegment(page, "Admin Users");
|
||||
await page.reload();
|
||||
|
||||
const segments = await listSegments(page);
|
||||
expect(segments.includes(segmentName)).toBe(false);
|
||||
@@ -109,7 +110,7 @@ test.describe("Filter Segment Functionality", () => {
|
||||
|
||||
await page.goto(`/settings/organizations/${org.slug}/members`);
|
||||
|
||||
const dataTable = page.getByTestId("user-list-data-table");
|
||||
const dataTable = page.getByTestId('user-list-data-table').nth(0);
|
||||
await expect(dataTable).toBeVisible();
|
||||
|
||||
await applySelectFilter(page, "role", "admin");
|
||||
|
||||
@@ -89,7 +89,7 @@ test.describe("Team", () => {
|
||||
const context = await browser.newContext();
|
||||
const inviteLinkPage = await context.newPage();
|
||||
await inviteLinkPage.goto(inviteLink);
|
||||
await inviteLinkPage.waitForLoadState("domcontentloaded");
|
||||
await inviteLinkPage.waitForTimeout(3000);
|
||||
|
||||
await inviteLinkPage.locator("button[type=submit]").click();
|
||||
await expect(inviteLinkPage.locator('[data-testid="field-error"]')).toHaveCount(2);
|
||||
|
||||
Reference in New Issue
Block a user