Spaces:
Running
Running
// 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(); | |
}); | |
}); | |