lynxkite / lynxkite-app /web /tests /errors.spec.ts
darabos's picture
Set up Biome for JS linting/formatting.
8fe4e41
raw
history blame
1.68 kB
// Tests error reporting.
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(), "error_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("error_spec_test");
});
test("missing parameter", async () => {
// Test the correct error message is displayed when a required parameter is missing,
// and that the error message is removed when the parameter is filled.
await workspace.addBox("Create scale-free graph");
const graphBox = workspace.getBox("Create scale-free graph 1");
await graphBox.locator("input").fill("");
expect(await graphBox.locator(".error").innerText()).toBe(
"invalid literal for int() with base 10: ''",
);
await graphBox.locator("input").fill("10");
await expect(graphBox.locator(".error")).not.toBeVisible();
});
test("unknown operation", async () => {
// Test that the correct error is displayed when the operation does not belong to
// the current environment.
await workspace.addBox("Create scale-free graph");
await workspace.setEnv("LynxScribe");
const csvBox = workspace.getBox("Create scale-free graph 1");
const errorText = await csvBox.locator(".error").innerText();
expect(errorText).toBe('Operation "Create scale-free graph" not found.');
await workspace.setEnv("LynxKite Graph Analytics");
await expect(csvBox.locator(".error")).not.toBeVisible();
});