// Tests error reporting. import { test, expect } 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(); });