mirror of
https://github.com/nocodb/nocodb.git
synced 2026-04-25 02:05:16 +00:00
test: webhook stability fix
Signed-off-by: Raju Udava <86527202+dstala@users.noreply.github.com>
This commit is contained in:
committed by
Muhammed Mustafa
parent
540f68f3d9
commit
074fd3222c
@@ -42,7 +42,7 @@ export class WebhookFormPage extends BasePage {
|
||||
await this.get().waitFor({ state: "visible" });
|
||||
|
||||
await this.configureHeader({
|
||||
key: "Content-type",
|
||||
key: "Content-Type",
|
||||
value: "application/json",
|
||||
});
|
||||
await this.configureWebhook({ title, event, url });
|
||||
@@ -161,8 +161,7 @@ export class WebhookFormPage extends BasePage {
|
||||
await this.get().locator(`.ant-tabs-tab-btn:has-text("Headers")`).click();
|
||||
|
||||
await this.get().locator(".nc-input-hook-header-key >> input").fill(key);
|
||||
const modal = this.rootPage.locator(`.nc-dropdown-webhook-header`);
|
||||
await modal.locator(`.ant-select-item:has-text("${key}")`).click();
|
||||
await this.rootPage.locator(`.ant-select-item:has-text("${key}")`).click();
|
||||
|
||||
await this.get().locator(".nc-input-hook-header-value").type(value);
|
||||
await this.get().press("Enter");
|
||||
@@ -188,16 +187,42 @@ export class WebhookFormPage extends BasePage {
|
||||
urlMethod: string;
|
||||
condition: boolean;
|
||||
}) {
|
||||
await expect.poll(
|
||||
async () => await this.get().locator('input.nc-text-field-hook-title').inputValue()
|
||||
).toBe(title);
|
||||
await expect(this.get().locator('.nc-text-field-hook-event >> .ant-select-selection-item')).toHaveText(hookEvent);
|
||||
await expect(this.get().locator('.nc-select-hook-notification-type >> .ant-select-selection-item')).toHaveText(notificationType);
|
||||
await expect(this.get().locator('.nc-select-hook-url-method >> .ant-select-selection-item')).toHaveText(urlMethod);
|
||||
await expect.poll(async() => await this.get().locator('input.nc-text-field-hook-url-path').inputValue()).toBe(url);
|
||||
await expect
|
||||
.poll(
|
||||
async () =>
|
||||
await this.get()
|
||||
.locator("input.nc-text-field-hook-title")
|
||||
.inputValue()
|
||||
)
|
||||
.toBe(title);
|
||||
await expect(
|
||||
this.get().locator(
|
||||
".nc-text-field-hook-event >> .ant-select-selection-item"
|
||||
)
|
||||
).toHaveText(hookEvent);
|
||||
await expect(
|
||||
this.get().locator(
|
||||
".nc-select-hook-notification-type >> .ant-select-selection-item"
|
||||
)
|
||||
).toHaveText(notificationType);
|
||||
await expect(
|
||||
this.get().locator(
|
||||
".nc-select-hook-url-method >> .ant-select-selection-item"
|
||||
)
|
||||
).toHaveText(urlMethod);
|
||||
await expect
|
||||
.poll(
|
||||
async () =>
|
||||
await this.get()
|
||||
.locator("input.nc-text-field-hook-url-path")
|
||||
.inputValue()
|
||||
)
|
||||
.toBe(url);
|
||||
|
||||
const conditionCheckbox = this.get().locator('label.nc-check-box-hook-condition >> input[type="checkbox"]')
|
||||
if(condition) {
|
||||
const conditionCheckbox = this.get().locator(
|
||||
'label.nc-check-box-hook-condition >> input[type="checkbox"]'
|
||||
);
|
||||
if (condition) {
|
||||
await expect(conditionCheckbox).toBeChecked();
|
||||
} else {
|
||||
await expect(conditionCheckbox).not.toBeChecked();
|
||||
@@ -205,6 +230,6 @@ export class WebhookFormPage extends BasePage {
|
||||
}
|
||||
|
||||
async goBackFromForm() {
|
||||
await this.get().locator('svg.nc-icon-hook-navigate-left').click();
|
||||
await this.get().locator("svg.nc-icon-hook-navigate-left").click();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,9 +20,9 @@ async function clearServerData({ request }) {
|
||||
async function verifyHookTrigger(count: number, value: string, request) {
|
||||
// Retry since there can be lag between the time the hook is triggered and the time the server receives the request
|
||||
let response;
|
||||
for(let i = 0; i < 6; i++) {
|
||||
for (let i = 0; i < 6; i++) {
|
||||
response = await request.get(hookPath + "/count");
|
||||
if(await response.json() === count) {
|
||||
if ((await response.json()) === count) {
|
||||
break;
|
||||
}
|
||||
await new Promise((resolve) => setTimeout(resolve, 100));
|
||||
@@ -37,13 +37,13 @@ async function verifyHookTrigger(count: number, value: string, request) {
|
||||
|
||||
test.describe.serial("Webhook", async () => {
|
||||
// start a server locally for webhook tests
|
||||
|
||||
|
||||
let dashboard: DashboardPage, toolbar: ToolbarPage, webhook: WebhookFormPage;
|
||||
let context: any;
|
||||
|
||||
test.beforeAll(async () => {
|
||||
await makeServer();
|
||||
})
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
context = await setup({ page });
|
||||
|
||||
Reference in New Issue
Block a user