Linden Crandall 5075f5c5d8
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
commit upstream files
2025-02-06 04:14:18 +09:00

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('');
});
});