lynxkite / lynxkite-app /web /tests /directory.spec.ts
JMLizano's picture
59 fix default workspace env (#68)
dff86b8
raw
history blame
3.18 kB
// Tests some basic operations like box creation, deletion, and dragging.
import { test, expect } from '@playwright/test';
import { Workspace, Splash } from './lynxkite';
test.describe("Directory operations", () => {
let splash: Splash;
test.beforeAll(async ({ browser }) => {
const page = await browser.newPage()
// To make deletion confirmation dialog to be automatically accepted
page.on('dialog', async dialog => { await dialog.accept(); });
splash = await Splash.open(page);
});
test('Create workspace with default name', async () => {
const workspace = await Workspace.empty(splash.page);
// Not checking for exact match, since there may be pre-existing "Untitled" workspaces
expect(workspace.name).toContain('Untitled');
await workspace.close();
});
test('Create & delete workspace', async () => {
const workspaceName = `TestWorkspace-${Date.now()}`;
const workspace = await Workspace.empty(splash.page, workspaceName);
await workspace.expectCurrentWorkspaceIs(workspaceName);
// Add a box so the workspace is saved
await workspace.addBox('Import Parquet');
await workspace.close();
await splash.deleteEntry(workspaceName);
await expect(splash.getEntry(workspaceName)).not.toBeVisible();
});
test('Create & delete folder', async () => {
const folderName = `TestFolder-${Date.now()}`;
await splash.createFolder(folderName);
await expect(splash.currentFolder()).toHaveText(folderName);
await splash.goHome();
await splash.deleteEntry(folderName);
await expect(splash.getEntry(folderName)).not.toBeVisible();
});
test('Create folder with default name', async () => {
await splash.createFolder();
await expect(splash.currentFolder()).toContainText('Untitled');
});
});
test.describe.serial('Nested folders & workspaces operations', () => {
let splash;
test.beforeEach(() => {
// Nested navigation doesn't work yet
test.skip();
});
test.beforeAll(async ({ browser }) => {
const page = await browser.newPage()
// To make deletion confirmation dialog to be automatically accepted
page.on('dialog', async dialog => { await dialog.accept(); });
splash = await Splash.open(page);
await splash.createFolder('TestFolder');
});
test.afterAll(async () => {
//cleanup
test.skip();
await splash.goHome();
await splash.deleteEntry('TestFolder');
});
test('Create nested folder', async () => {
await splash.createFolder('TestFolder2');
await expect(splash.currentFolder()).toHaveText('TestFolder2');
await splash.toParent();
});
test('Delete nested folder', async () => {
await splash.deleteEntry('TestFolder2');
await expect(splash.getEntry('TestFolder2')).not.toBeVisible();
});
test('Create nested workspace', async () => {
const workspace = splash.createWorkspace('TestWorkspace');
await workspace.expectCurrentWorkspaceIs('TestWorkspace');
await workspace.close();
});
test('Delete nested workspace', async () => {
await splash.deleteEntry('TestWorkspace');
await expect(splash.getEntry('TestWorkspace')).not.toBeVisible();
});
});