mirror of
https://github.com/nocodb/nocodb.git
synced 2026-04-30 12:46:36 +00:00
- Rename `Project` => `Base` - Rename `Base` => `Source` - Remove `db` from data/meta api endpoints - Add backward compatibility for old apis - Migrations for renaming table and columns Signed-off-by: Pranav C <pranavxc@gmail.com>
224 lines
8.6 KiB
TypeScript
224 lines
8.6 KiB
TypeScript
import { test } from '@playwright/test';
|
|
import { BaseType, ProjectTypes } from 'nocodb-sdk';
|
|
import { DashboardPage } from '../../pages/Dashboard';
|
|
import setup, { NcContext } from '../../setup';
|
|
|
|
test.describe('Create docs base and verify docs UI', () => {
|
|
let dashboard: DashboardPage;
|
|
let context: NcContext;
|
|
let base: BaseType;
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
context = await setup({ page, baseType: ProjectTypes.DOCUMENTATION });
|
|
base = context.base;
|
|
dashboard = new DashboardPage(page, context.base);
|
|
});
|
|
|
|
test('Update title page of root and child page and verify', async ({ page }) => {
|
|
const openedPage = dashboard.docs.openedPage;
|
|
// Page update of root page
|
|
await dashboard.sidebar.docsSidebar.createPage({ baseTitle: base.title as any, title: 'root-page' });
|
|
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'root-page',
|
|
baseTitle: base.title as any,
|
|
});
|
|
|
|
await page.reload();
|
|
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'root-page',
|
|
baseTitle: base.title as any,
|
|
});
|
|
|
|
await openedPage.verifyTitle({ title: 'root-page' });
|
|
await openedPage.verifyBreadcrumb({ pages: [{ title: 'root-page' }] });
|
|
|
|
// Page update of child page
|
|
await dashboard.sidebar.docsSidebar.createChildPage({
|
|
parentTitle: 'root-page',
|
|
baseTitle: base.title as any,
|
|
title: 'child-page',
|
|
});
|
|
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'child-page',
|
|
baseTitle: base.title as any,
|
|
level: 1,
|
|
});
|
|
|
|
await page.reload();
|
|
|
|
await page.waitForTimeout(1500);
|
|
|
|
await openedPage.verifyTitle({ title: 'child-page' });
|
|
await openedPage.verifyBreadcrumb({ pages: [{ title: 'root-page' }, { title: 'child-page' }] });
|
|
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'child-page',
|
|
baseTitle: base.title as any,
|
|
level: 1,
|
|
});
|
|
|
|
// Verify that page title doesnt break when a new page is created, an existing page is opened and title is changed and new page is opened again and the title is updated there as well
|
|
await dashboard.sidebar.docsSidebar.createChildPage({
|
|
parentTitle: 'root-page',
|
|
baseTitle: base.title as any,
|
|
});
|
|
|
|
await dashboard.sidebar.docsSidebar.openPage({
|
|
title: 'child-page',
|
|
baseTitle: base.title as any,
|
|
});
|
|
await dashboard.docs.openedPage.fillTitle({ title: 'child-page-1' });
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'child-page-1',
|
|
baseTitle: base.title as any,
|
|
level: 1,
|
|
});
|
|
await openedPage.verifyTitle({ title: 'child-page-1' });
|
|
await openedPage.verifyBreadcrumb({ pages: [{ title: 'root-page' }, { title: 'child-page-1' }] });
|
|
|
|
await dashboard.sidebar.docsSidebar.openPage({ title: 'Page', baseTitle: base.title as any });
|
|
await dashboard.docs.openedPage.fillTitle({ title: 'child-page-2' });
|
|
await openedPage.verifyTitle({ title: 'child-page-2' });
|
|
await openedPage.verifyBreadcrumb({ pages: [{ title: 'root-page' }, { title: 'child-page-2' }] });
|
|
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'child-page-2',
|
|
baseTitle: base.title as any,
|
|
level: 1,
|
|
});
|
|
});
|
|
|
|
test('Update emoji and content of newly created root page and child page', async ({ page }) => {
|
|
const openedPage = dashboard.docs.openedPage;
|
|
// root page
|
|
await dashboard.sidebar.docsSidebar.createPage({ baseTitle: base.title as any, title: 'root-page' });
|
|
await dashboard.docs.openedPage.verifyOpenedPageVisible();
|
|
|
|
await dashboard.sidebar.docsSidebar.selectEmoji({
|
|
emoji: 'hot-dog',
|
|
baseTitle: base.title as any,
|
|
title: 'root-page',
|
|
});
|
|
await dashboard.sidebar.docsSidebar.verifyEmoji({
|
|
emoji: 'hot-dog',
|
|
baseTitle: base.title as any,
|
|
title: 'root-page',
|
|
});
|
|
await dashboard.docs.openedPage.verifyTitleEmoji({ emoji: 'hot-dog' });
|
|
await openedPage.verifyBreadcrumb({ pages: [{ title: 'root-page', emoji: 'hot-dog' }] });
|
|
|
|
await dashboard.docs.openedPage.selectEmoji({ emoji: 'rolling-on-the-floor-laughing' });
|
|
await dashboard.docs.openedPage.verifyTitleEmoji({ emoji: 'rolling-on-the-floor-laughing' });
|
|
await dashboard.sidebar.docsSidebar.verifyEmoji({
|
|
emoji: 'rolling-on-the-floor-laughing',
|
|
baseTitle: base.title as any,
|
|
title: 'root-page',
|
|
});
|
|
await openedPage.verifyBreadcrumb({ pages: [{ title: 'root-page', emoji: 'rolling-on-the-floor-laughing' }] });
|
|
|
|
await dashboard.docs.openedPage.fillTitle({ title: 'root-page-1' });
|
|
await dashboard.docs.openedPage.tiptap.fillContent({ content: 'root-page-1-content' });
|
|
await dashboard.docs.openedPage.tiptap.verifyContent({ content: 'root-page-1-content' });
|
|
|
|
await openedPage.verifyBreadcrumb({ pages: [{ title: 'root-page-1', emoji: 'rolling-on-the-floor-laughing' }] });
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'root-page-1',
|
|
baseTitle: base.title as any,
|
|
});
|
|
|
|
// child page
|
|
await dashboard.sidebar.docsSidebar.createChildPage({
|
|
parentTitle: 'root-page-1',
|
|
baseTitle: base.title as any,
|
|
title: 'child-page',
|
|
});
|
|
|
|
await dashboard.docs.openedPage.fillTitle({ title: 'child-page-1' });
|
|
await dashboard.docs.openedPage.tiptap.fillContent({ content: 'child-page-1-content' });
|
|
await dashboard.docs.openedPage.tiptap.verifyContent({ content: 'child-page-1-content' });
|
|
await openedPage.verifyBreadcrumb({
|
|
pages: [{ title: 'root-page-1', emoji: 'rolling-on-the-floor-laughing' }, { title: 'child-page-1' }],
|
|
});
|
|
|
|
await dashboard.sidebar.docsSidebar.selectEmoji({
|
|
emoji: 'hot-dog',
|
|
baseTitle: base.title as any,
|
|
title: 'child-page-1',
|
|
});
|
|
await dashboard.sidebar.docsSidebar.verifyEmoji({
|
|
emoji: 'hot-dog',
|
|
baseTitle: base.title as any,
|
|
title: 'child-page-1',
|
|
});
|
|
await dashboard.docs.openedPage.verifyTitleEmoji({ emoji: 'hot-dog' });
|
|
await openedPage.verifyBreadcrumb({
|
|
pages: [
|
|
{ title: 'root-page-1', emoji: 'rolling-on-the-floor-laughing' },
|
|
{ title: 'child-page-1', emoji: 'hot-dog' },
|
|
],
|
|
});
|
|
|
|
await dashboard.docs.openedPage.selectEmoji({ emoji: 'rolling-on-the-floor-laughing' });
|
|
await dashboard.docs.openedPage.verifyTitleEmoji({ emoji: 'rolling-on-the-floor-laughing' });
|
|
await dashboard.sidebar.docsSidebar.verifyEmoji({
|
|
emoji: 'rolling-on-the-floor-laughing',
|
|
baseTitle: base.title as any,
|
|
title: 'child-page-1',
|
|
});
|
|
await openedPage.verifyBreadcrumb({
|
|
pages: [
|
|
{ title: 'root-page-1', emoji: 'rolling-on-the-floor-laughing' },
|
|
{ title: 'child-page-1', emoji: 'rolling-on-the-floor-laughing' },
|
|
],
|
|
});
|
|
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'child-page-1',
|
|
baseTitle: base.title as any,
|
|
level: 1,
|
|
emoji: 'rolling-on-the-floor-laughing',
|
|
});
|
|
|
|
await dashboard.sidebar.docsSidebar.openPage({
|
|
baseTitle: base.title as any,
|
|
title: 'root-page-1',
|
|
});
|
|
await dashboard.docs.openedPage.tiptap.verifyContent({ content: 'root-page-1-content' });
|
|
await dashboard.docs.openedPage.tiptap.clearContent();
|
|
await dashboard.docs.openedPage.tiptap.fillContent({ content: 'new-root-page-1-content' });
|
|
await dashboard.docs.openedPage.tiptap.verifyContent({ content: 'new-root-page-1-content' });
|
|
|
|
await dashboard.sidebar.docsSidebar.openPage({
|
|
baseTitle: base.title as any,
|
|
title: 'child-page-1',
|
|
});
|
|
// TODO: Child page content is not updated in this case, only on playwright
|
|
// await dashboard.docs.openedPage.tiptap.verifyContent({ content: 'child-page-1-content' });
|
|
await dashboard.docs.openedPage.tiptap.clearContent();
|
|
await dashboard.docs.openedPage.tiptap.fillContent({ content: 'new-child-page-1-content' });
|
|
await dashboard.docs.openedPage.tiptap.verifyContent({ content: 'new-child-page-1-content' });
|
|
|
|
await page.reload();
|
|
|
|
await openedPage.waitForRender();
|
|
await dashboard.docs.openedPage.tiptap.verifyContent({ content: 'new-child-page-1-content' });
|
|
await dashboard.sidebar.docsSidebar.verifyPageInSidebar({
|
|
title: 'child-page-1',
|
|
baseTitle: base.title as any,
|
|
level: 1,
|
|
emoji: 'rolling-on-the-floor-laughing',
|
|
});
|
|
await openedPage.verifyBreadcrumb({
|
|
pages: [
|
|
{ title: 'root-page-1', emoji: 'rolling-on-the-floor-laughing' },
|
|
{ title: 'child-page-1', emoji: 'rolling-on-the-floor-laughing' },
|
|
],
|
|
});
|
|
await openedPage.verifyTitle({ title: 'child-page-1' });
|
|
await openedPage.verifyTitleEmoji({ emoji: 'rolling-on-the-floor-laughing' });
|
|
});
|
|
});
|