Some checks are pending
Automatisch Backend Tests / test (push) Waiting to run
Automatisch CI / linter (push) Waiting to run
Automatisch CI / start-backend-server (push) Waiting to run
Automatisch CI / start-backend-worker (push) Waiting to run
Automatisch CI / build-web (push) Waiting to run
Automatisch UI Tests / test (push) Waiting to run
96 lines
3.4 KiB
JavaScript
96 lines
3.4 KiB
JavaScript
const { test, expect } = require('../../fixtures/index');
|
|
|
|
test.describe('Webhook flow', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.getByTestId('create-flow-button').click();
|
|
await page.waitForURL(
|
|
/\/editor\/[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}/
|
|
);
|
|
await expect(page.getByTestId('flow-step')).toHaveCount(2);
|
|
});
|
|
|
|
test('Create a new flow with a sync Webhook step then a Webhook step', async ({
|
|
flowEditorPage,
|
|
page,
|
|
request,
|
|
}) => {
|
|
await flowEditorPage.flowName.click();
|
|
await flowEditorPage.flowNameInput.fill('syncWebhook');
|
|
const syncWebhookUrl = await flowEditorPage.createWebhookTrigger(true);
|
|
|
|
await flowEditorPage.chooseAppAndEvent('Webhook', 'Respond with');
|
|
|
|
await expect(flowEditorPage.continueButton).toHaveCount(1);
|
|
await expect(flowEditorPage.continueButton).not.toBeEnabled();
|
|
|
|
await expect(
|
|
page
|
|
.getByTestId('parameters.statusCode-power-input')
|
|
.locator('[contenteditable]')
|
|
).toHaveText('200');
|
|
await flowEditorPage.clickAway();
|
|
await expect(flowEditorPage.continueButton).toHaveCount(1);
|
|
await expect(flowEditorPage.continueButton).not.toBeEnabled();
|
|
|
|
await page
|
|
.getByTestId('parameters.body-power-input')
|
|
.locator('[contenteditable]')
|
|
.fill('response from webhook');
|
|
await flowEditorPage.clickAway();
|
|
await expect(
|
|
page.getByTestId('parameters.headers.0.key-power-input')
|
|
).toBeVisible();
|
|
await expect(flowEditorPage.continueButton).toBeEnabled();
|
|
await flowEditorPage.continueButton.click();
|
|
|
|
await flowEditorPage.testAndContinue();
|
|
await flowEditorPage.publishFlowButton.click();
|
|
await expect(flowEditorPage.infoSnackbar).toBeVisible();
|
|
|
|
const response = await request.get(syncWebhookUrl);
|
|
await expect(response.status()).toBe(200);
|
|
await expect(await response.text()).toBe('response from webhook');
|
|
});
|
|
|
|
test('Create a new flow with an async Webhook step then a Webhook step', async ({
|
|
flowEditorPage,
|
|
page,
|
|
request,
|
|
}) => {
|
|
await flowEditorPage.flowName.click();
|
|
await flowEditorPage.flowNameInput.fill('asyncWebhook');
|
|
const asyncWebhookUrl = await flowEditorPage.createWebhookTrigger(false);
|
|
|
|
await flowEditorPage.chooseAppAndEvent('Webhook', 'Respond with');
|
|
await expect(flowEditorPage.continueButton).toHaveCount(1);
|
|
await expect(flowEditorPage.continueButton).not.toBeEnabled();
|
|
|
|
await page
|
|
.getByTestId('parameters.statusCode-power-input')
|
|
.locator('[contenteditable]')
|
|
.fill('200');
|
|
await flowEditorPage.clickAway();
|
|
await expect(flowEditorPage.continueButton).toHaveCount(1);
|
|
await expect(flowEditorPage.continueButton).not.toBeEnabled();
|
|
|
|
await page
|
|
.getByTestId('parameters.body-power-input')
|
|
.locator('[contenteditable]')
|
|
.fill('response from webhook');
|
|
await flowEditorPage.clickAway();
|
|
await expect(
|
|
page.getByTestId('parameters.headers.0.key-power-input')
|
|
).toBeVisible();
|
|
await expect(flowEditorPage.continueButton).toBeEnabled();
|
|
await flowEditorPage.continueButton.click();
|
|
|
|
await flowEditorPage.testAndContinue();
|
|
await flowEditorPage.publishFlowButton.click();
|
|
await expect(flowEditorPage.infoSnackbar).toBeVisible();
|
|
|
|
const response = await request.get(asyncWebhookUrl);
|
|
await expect(response.status()).toBe(204);
|
|
await expect(await response.text()).toBe('');
|
|
});
|
|
});
|