mirror of
https://github.com/twentyhq/twenty.git
synced 2026-04-18 05:54:42 -04:00
In this PR, - current basic E2E tests are fixed, and some were added, covering some basic scenarios - some tests avec been commented out, until we decide whether they are worth fixing The next steps are - evaluate the flakiness of the tests. Once they've proved not to be flaky, we should add more tests + re-write the current ones not using aria-label (cf @lucasbordeau indication). - We will add them back to the development flow
219 lines
6.8 KiB
TypeScript
219 lines
6.8 KiB
TypeScript
// import { expect } from '@playwright/test';
|
|
// import { test } from '../lib/fixtures/blank-workflow';
|
|
|
|
// test('Create workflow with every possible step', async ({
|
|
// workflowVisualizer,
|
|
// page,
|
|
// }) => {
|
|
// await workflowVisualizer.createInitialTrigger('record-created');
|
|
|
|
// await workflowVisualizer.createStep('create-record');
|
|
// await workflowVisualizer.createStep('update-record');
|
|
// await workflowVisualizer.createStep('delete-record');
|
|
// await workflowVisualizer.createStep('code');
|
|
// await workflowVisualizer.createStep('send-email');
|
|
|
|
// await workflowVisualizer.background.click();
|
|
|
|
// const draftWorkflowStatus =
|
|
// workflowVisualizer.workflowStatus.getByText('Draft');
|
|
|
|
// await expect(draftWorkflowStatus).toBeVisible();
|
|
|
|
// await workflowVisualizer.activateWorkflowButton.click();
|
|
|
|
// const activeWorkflowStatus =
|
|
// workflowVisualizer.workflowStatus.getByText('Active');
|
|
|
|
// await expect(draftWorkflowStatus).not.toBeVisible();
|
|
// await expect(activeWorkflowStatus).toBeVisible();
|
|
// await expect(workflowVisualizer.activateWorkflowButton).not.toBeVisible();
|
|
// await expect(workflowVisualizer.deactivateWorkflowButton).toBeVisible();
|
|
// });
|
|
|
|
// test('Delete steps from draft version', async ({
|
|
// workflowVisualizer,
|
|
// page,
|
|
// }) => {
|
|
// await workflowVisualizer.createInitialTrigger('record-created');
|
|
|
|
// const { createdStepId: firstStepId } =
|
|
// await workflowVisualizer.createStep('create-record');
|
|
// const { createdStepId: secondStepId } =
|
|
// await workflowVisualizer.createStep('update-record');
|
|
// const { createdStepId: thirdStepId } =
|
|
// await workflowVisualizer.createStep('delete-record');
|
|
// const { createdStepId: fourthStepId } =
|
|
// await workflowVisualizer.createStep('code');
|
|
// const { createdStepId: fifthStepId } =
|
|
// await workflowVisualizer.createStep('send-email');
|
|
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toContainText([
|
|
// 'Create Record',
|
|
// 'Update Record',
|
|
// 'Delete Record',
|
|
// 'Code - Serverless Function',
|
|
// 'Send Email',
|
|
// ]);
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(5);
|
|
|
|
// await workflowVisualizer.deleteStep(firstStepId);
|
|
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toContainText([
|
|
// 'Update Record',
|
|
// 'Delete Record',
|
|
// 'Code - Serverless Function',
|
|
// 'Send Email',
|
|
// ]);
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(4);
|
|
|
|
// await workflowVisualizer.deleteStep(fifthStepId);
|
|
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toContainText([
|
|
// 'Update Record',
|
|
// 'Delete Record',
|
|
// 'Code - Serverless Function',
|
|
// ]);
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(3);
|
|
|
|
// await workflowVisualizer.deleteStep(secondStepId);
|
|
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toContainText([
|
|
// 'Delete Record',
|
|
// 'Code - Serverless Function',
|
|
// ]);
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(2);
|
|
|
|
// await workflowVisualizer.deleteStep(fourthStepId);
|
|
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toContainText([
|
|
// 'Delete Record',
|
|
// ]);
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(1);
|
|
|
|
// await workflowVisualizer.deleteStep(thirdStepId);
|
|
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(0);
|
|
|
|
// await Promise.all([
|
|
// page.reload(),
|
|
|
|
// expect(workflowVisualizer.triggerNode).toBeVisible(),
|
|
// ]);
|
|
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(0);
|
|
// });
|
|
|
|
// test('Add a step to an active version', async ({
|
|
// workflowVisualizer,
|
|
// page,
|
|
// }) => {
|
|
// await workflowVisualizer.createInitialTrigger('record-created');
|
|
|
|
// await workflowVisualizer.createStep('create-record');
|
|
|
|
// await expect(workflowVisualizer.workflowStatus).toHaveText('Draft');
|
|
|
|
// await workflowVisualizer.background.click();
|
|
|
|
// await Promise.all([
|
|
// expect(workflowVisualizer.workflowStatus).toHaveText('Active'),
|
|
|
|
// workflowVisualizer.activateWorkflowButton.click(),
|
|
// ]);
|
|
|
|
// await expect(workflowVisualizer.activateWorkflowButton).not.toBeVisible();
|
|
|
|
// const assertEndState = async () => {
|
|
// await expect(workflowVisualizer.workflowStatus).toHaveText('Active');
|
|
// await expect(workflowVisualizer.triggerNode).toContainText(
|
|
// 'Record is created',
|
|
// );
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toContainText([
|
|
// 'Create Record',
|
|
// ]);
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(1);
|
|
// };
|
|
|
|
// await assertEndState();
|
|
|
|
// await page.reload();
|
|
|
|
// await assertEndState();
|
|
// });
|
|
|
|
// test('Replace the trigger of an active version', async ({
|
|
// workflowVisualizer,
|
|
// page,
|
|
// }) => {
|
|
// await workflowVisualizer.createInitialTrigger('record-created');
|
|
|
|
// await workflowVisualizer.createStep('create-record');
|
|
|
|
// await workflowVisualizer.background.click();
|
|
|
|
// await Promise.all([
|
|
// expect(workflowVisualizer.workflowStatus).toHaveText('Active'),
|
|
|
|
// workflowVisualizer.activateWorkflowButton.click(),
|
|
// ]);
|
|
|
|
// await Promise.all([
|
|
// expect(workflowVisualizer.workflowStatus).toHaveText('Draft'),
|
|
|
|
// workflowVisualizer.deleteTrigger(),
|
|
// ]);
|
|
|
|
// await workflowVisualizer.createInitialTrigger('record-deleted');
|
|
|
|
// await workflowVisualizer.background.click();
|
|
|
|
// await Promise.all([
|
|
// expect(workflowVisualizer.workflowStatus).toHaveText('Active'),
|
|
|
|
// workflowVisualizer.activateWorkflowButton.click(),
|
|
// ]);
|
|
|
|
// await page.reload();
|
|
|
|
// await expect(workflowVisualizer.triggerNode).toContainText(
|
|
// 'Record is deleted',
|
|
// );
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toHaveCount(1);
|
|
// await expect(workflowVisualizer.getAllStepNodes()).toContainText([
|
|
// 'Create Record',
|
|
// ]);
|
|
// });
|
|
|
|
// test("Nodes can't be deleted by pressing Backspace or Delete keys", async ({
|
|
// workflowVisualizer,
|
|
// page,
|
|
// }) => {
|
|
// await workflowVisualizer.triggerNode.click();
|
|
|
|
// await page.keyboard.press('Backspace');
|
|
// await page.keyboard.press('Delete');
|
|
|
|
// await expect(workflowVisualizer.triggerNode).toBeVisible();
|
|
|
|
// const { createdStepId: firstStepId } =
|
|
// await workflowVisualizer.createStep('create-record');
|
|
// const firstStep = workflowVisualizer.getStepNode(firstStepId);
|
|
|
|
// await firstStep.click();
|
|
|
|
// await expect(workflowVisualizer.getDeleteNodeButton(firstStep)).toBeVisible();
|
|
|
|
// await page.keyboard.press('Backspace');
|
|
// await page.keyboard.press('Delete');
|
|
|
|
// await expect(firstStep).toBeVisible();
|
|
|
|
// await workflowVisualizer.addStepButton.click();
|
|
|
|
// await page.keyboard.press('Backspace');
|
|
// await page.keyboard.press('Delete');
|
|
|
|
// await expect(workflowVisualizer.addStepButton).toBeVisible();
|
|
// });
|