Spaces:
Running
Running
| import { dirname, join } from "node:path"; | |
| import { fileURLToPath } from "node:url"; | |
| // Test uploading a file in an import box. | |
| import { expect, test } from "@playwright/test"; | |
| import { Splash, Workspace } from "./lynxkite"; | |
| let workspace: Workspace; | |
| test.beforeEach(async ({ browser }) => { | |
| workspace = await Workspace.empty( | |
| await browser.newPage(), | |
| "upload_spec_test", | |
| ); | |
| }); | |
| test.afterEach(async () => { | |
| await workspace.close(); | |
| const splash = await new Splash(workspace.page); | |
| splash.page.on("dialog", async (dialog) => { | |
| await dialog.accept(); | |
| }); | |
| await splash.deleteEntry("upload_spec_test"); | |
| }); | |
| test("can upload and import a simple CSV", async () => { | |
| const __filename = fileURLToPath(import.meta.url); | |
| const __dirname = dirname(__filename); | |
| const csvPath = join(__dirname, "data", "upload_test.csv"); | |
| await workspace.addBox("Import CSV"); | |
| const csvBox = workspace.getBox("Import CSV 1"); | |
| const filenameInput = csvBox.locator("input.input-bordered").nth(0); | |
| await filenameInput.click(); | |
| await filenameInput.fill(csvPath); | |
| await filenameInput.press("Enter"); | |
| await workspace.addBox("View tables"); | |
| const tableBox = workspace.getBox("View tables 1"); | |
| await workspace.connectBoxes("Import CSV 1", "View tables 1"); | |
| const tableRows = tableBox.locator("table tbody tr"); | |
| await expect(tableRows).toHaveCount(4); | |
| }); | |