From 1b278b95359c9b3e844438c96c62596291b11382 Mon Sep 17 00:00:00 2001 From: Muhammed Mustafa Date: Fri, 22 Sep 2023 15:23:20 +0000 Subject: [PATCH] fix: Integrated view sidebar removal to tests --- .../dashboard/TreeView/TableNode.vue | 1 + .../pages/Dashboard/Sidebar/index.ts | 25 +++++++++++++++---- tests/playwright/pages/Dashboard/TreeView.ts | 2 +- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/nc-gui/components/dashboard/TreeView/TableNode.vue b/packages/nc-gui/components/dashboard/TreeView/TableNode.vue index c932258d4f..a356e29b38 100644 --- a/packages/nc-gui/components/dashboard/TreeView/TableNode.vue +++ b/packages/nc-gui/components/dashboard/TreeView/TableNode.vue @@ -143,6 +143,7 @@ const isTableOpened = computed(() => {
diff --git a/tests/playwright/pages/Dashboard/Sidebar/index.ts b/tests/playwright/pages/Dashboard/Sidebar/index.ts index 46212f8745..61ea263dbc 100644 --- a/tests/playwright/pages/Dashboard/Sidebar/index.ts +++ b/tests/playwright/pages/Dashboard/Sidebar/index.ts @@ -64,20 +64,35 @@ export class SidebarPage extends BasePage { const createViewButtonOfActiveProject = this.dashboard .get() .locator('.nc-table-node-wrapper[data-active="true"] .nc-create-view-btn'); - await createViewButtonOfActiveProject.waitFor({ state: 'visible' }); await createViewButtonOfActiveProject.scrollIntoViewIfNeeded(); await createViewButtonOfActiveProject.click(); + // TODO: Find a better way to do it + let createViewTypeButton: Locator; + if (type === ViewTypes.GRID) { - await this.rootPage.getByTestId('sidebar-view-create-grid').last().click({ force: true }); + createViewTypeButton = this.rootPage.getByTestId('sidebar-view-create-grid'); } else if (type === ViewTypes.FORM) { - await this.rootPage.getByTestId('sidebar-view-create-form').last().click({ force: true }); + createViewTypeButton = this.rootPage.getByTestId('sidebar-view-create-form'); } else if (type === ViewTypes.KANBAN) { - await this.rootPage.getByTestId('sidebar-view-create-kanban').last().click({ force: true }); + createViewTypeButton = this.rootPage.getByTestId('sidebar-view-create-kanban'); } else if (type === ViewTypes.GALLERY) { - await this.rootPage.getByTestId('sidebar-view-create-gallery').last().click({ force: true }); + createViewTypeButton = this.rootPage.getByTestId('sidebar-view-create-gallery'); + } + + await this.rootPage.waitForTimeout(750); + const allButtons = await createViewTypeButton.all(); + for (const btn of allButtons) { + if (await btn.isVisible()) { + createViewTypeButton = btn; + break; + } } + await createViewTypeButton.click({ + force: true, + }); + await this.rootPage.locator('input[id="form_item_title"]:visible').waitFor({ state: 'visible' }); await this.rootPage.locator('input[id="form_item_title"]:visible').fill(title); const submitAction = () => diff --git a/tests/playwright/pages/Dashboard/TreeView.ts b/tests/playwright/pages/Dashboard/TreeView.ts index 1b6868f559..3fbffddb65 100644 --- a/tests/playwright/pages/Dashboard/TreeView.ts +++ b/tests/playwright/pages/Dashboard/TreeView.ts @@ -72,7 +72,7 @@ export class TreeViewPage extends BasePage { async getTable({ index, tableTitle }: { index: number; tableTitle?: string }) { if (tableTitle) { - return this.get().getByTestId(`nc-tbl-title-${tableTitle}`); + return this.get().getByTestId(`nc-tbl-side-node-${tableTitle}`); } return this.get().locator('.nc-tree-item').nth(index);