diff --git a/tests/playwright/tests/undo-redo.spec.ts b/tests/playwright/tests/undo-redo.spec.ts index c7d6d25e66..3d5d764058 100644 --- a/tests/playwright/tests/undo-redo.spec.ts +++ b/tests/playwright/tests/undo-redo.spec.ts @@ -337,41 +337,119 @@ test.describe('Undo Redo', () => { await undo({ page }); expect(await dashboard.grid.column.getWidth({ title: 'Number' })).toBe(originalWidth); }); +}); - test('Table & View rename', async ({ page }) => { - // close 'Team & Auth' tab - await dashboard.closeTab({ title: 'Team & Auth' }); - await dashboard.treeView.openTable({ title: 'numberBased' }); +test.describe('Undo Redo - Table & view rename operations', () => { + test.beforeEach(async ({ page }) => { + context = await setup({ page, isEmptyProject: true }); + dashboard = new DashboardPage(page, context.project); + grid = dashboard.grid; + toolbar = dashboard.grid.toolbar; - await dashboard.viewSidebar.renameView({ - title: 'numberBased', - newTitle: 'newNameForTest', - }); - await dashboard.viewSidebar.verifyView({ - title: 'newNameForTest', - index: 0, + api = new Api({ + baseURL: `http://localhost:8080/`, + headers: { + 'xc-auth': context.token, + }, }); - await dashboard.rootPage.waitForTimeout(100); - await undo({ page }); - await dashboard.rootPage.waitForTimeout(100); - await dashboard.viewSidebar.verifyView({ - title: 'numberBased', - index: 0, - }); + const columns = [ + { + column_name: 'Id', + title: 'Id', + uidt: UITypes.ID, + }, + { + column_name: 'Number', + title: 'Number', + uidt: UITypes.Number, + pv: true, + }, + { + column_name: 'SingleSelect', + title: 'SingleSelect', + uidt: UITypes.SingleSelect, + dtxp: "'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'", + }, + ]; + + try { + const project = await api.project.read(context.project.id); + table = await api.base.tableCreate(context.project.id, project.bases?.[0].id, { + table_name: 'selectBased', + title: 'selectBased', + columns: columns, + }); + const rowAttributes = []; + for (let i = 0; i < 10; i++) { + const row = { + Number: rowMixedValue(columns[1], i), + SingleSelect: rowMixedValue(columns[2], i), + }; + rowAttributes.push(row); + } - // tabel rename - await dashboard.treeView.renameTable({ title: 'numberBased', newTitle: 'newNameForTest' }); + await api.dbTableRow.bulkCreate('noco', context.project.id, table.id, rowAttributes); + records = await api.dbTableRow.list('noco', context.project.id, table.id, { limit: 100 }); + } catch (e) { + console.log(e); + } + + // reload page after api calls + await page.reload(); + }); + + test('Table & View rename', async ({ page }) => { + // close 'Team & Auth' tab + await dashboard.closeTab({ title: 'Team & Auth' }); + await dashboard.treeView.openTable({ title: 'selectBased' }); + + // table rename + await dashboard.treeView.renameTable({ title: 'selectBased', newTitle: 'newNameForTest' }); await dashboard.treeView.verifyTable({ title: 'newNameForTest' }); await dashboard.rootPage.waitForTimeout(100); await undo({ page }); await dashboard.rootPage.waitForTimeout(100); - await dashboard.treeView.verifyTable({ title: 'numberBased' }); + await dashboard.treeView.verifyTable({ title: 'selectBased' }); + + // View rename + const viewTypes = ['Grid', 'Gallery', 'Form', 'Kanban']; + for (let i = 0; i < viewTypes.length; i++) { + switch (viewTypes[i]) { + case 'Grid': + await dashboard.viewSidebar.createGridView({ + title: 'Grid', + }); + break; + case 'Gallery': + await dashboard.viewSidebar.createGalleryView({ + title: 'Gallery', + }); + break; + case 'Form': + await dashboard.viewSidebar.createFormView({ + title: 'Form', + }); + break; + case 'Kanban': + await dashboard.viewSidebar.createKanbanView({ + title: 'Kanban', + }); + break; + default: + break; + } + await dashboard.viewSidebar.renameView({ title: viewTypes[i], newTitle: 'newNameForTest' }); + await dashboard.viewSidebar.verifyView({ title: 'newNameForTest', index: 1 }); + await undo({ page }); + await dashboard.viewSidebar.verifyView({ title: viewTypes[i], index: 1 }); + await dashboard.viewSidebar.deleteView({ title: viewTypes[i] }); + } }); }); -test.describe('Undo Redo - 2', () => { +test.describe('Undo Redo - LTAR', () => { test.beforeEach(async ({ page }) => { context = await setup({ page, isEmptyProject: true }); dashboard = new DashboardPage(page, context.project); @@ -504,7 +582,7 @@ test.describe('Undo Redo - 2', () => { }); }); -test.describe('Undo Redo - 3', () => { +test.describe('Undo Redo - Select based', () => { test.beforeEach(async ({ page }) => { context = await setup({ page, isEmptyProject: true }); dashboard = new DashboardPage(page, context.project);