Files
n8n-enterprise-unlocked/packages/testing/playwright/tests/ui/39-import-workflow.spec.ts

82 lines
2.4 KiB
TypeScript

import { test, expect } from '../../fixtures/base';
import onboardingWorkflow from '../../workflows/Onboarding_workflow.json';
test.describe('Import workflow', () => {
test.describe('From URL', () => {
test.beforeEach(async ({ page }) => {
await page.route('**/rest/workflows/from-url*', async (route) => {
await route.fulfill({
status: 200,
contentType: 'application/json',
body: JSON.stringify({ data: onboardingWorkflow }),
});
});
});
test('should import workflow', async ({ n8n }) => {
await n8n.navigate.toWorkflow('new');
await n8n.page.waitForLoadState('load');
await n8n.canvas.clickWorkflowMenu();
await n8n.canvas.clickImportFromURL();
await expect(n8n.canvas.getImportURLInput()).toBeVisible();
await n8n.canvas.fillImportURLInput('https://fakepage.com/workflow.json');
await n8n.canvas.clickConfirmImportURL();
await n8n.canvas.clickZoomToFitButton();
await expect(n8n.canvas.getCanvasNodes()).toHaveCount(4);
await expect(n8n.notifications.getErrorNotifications()).toHaveCount(0);
await expect(n8n.notifications.getSuccessNotifications()).toHaveCount(0);
});
test('clicking outside modal should not show error toast', async ({ n8n }) => {
await n8n.navigate.toWorkflow('new');
await n8n.page.waitForLoadState('load');
await n8n.canvas.clickWorkflowMenu();
await n8n.canvas.clickImportFromURL();
await n8n.canvas.clickOutsideModal();
await expect(n8n.notifications.getErrorNotifications()).toHaveCount(0);
});
test('canceling modal should not show error toast', async ({ n8n }) => {
await n8n.navigate.toWorkflow('new');
await n8n.page.waitForLoadState('load');
await n8n.canvas.clickWorkflowMenu();
await n8n.canvas.clickImportFromURL();
await n8n.canvas.clickCancelImportURL();
await expect(n8n.notifications.getErrorNotifications()).toHaveCount(0);
});
});
test.describe('From File', () => {
test('should import workflow', async ({ n8n }) => {
await n8n.navigate.toWorkflow('new');
await n8n.page.waitForLoadState('load');
await n8n.canvas.importWorkflow(
'Test_workflow-actions_paste-data.json',
'Import Test Workflow',
);
await n8n.page.waitForLoadState('load');
await n8n.canvas.clickZoomToFitButton();
await expect(n8n.canvas.getCanvasNodes()).toHaveCount(5);
const connections = n8n.page.getByTestId('edge');
await expect(connections).toHaveCount(5);
});
});
});