From 68719cfa675964e02c7bed002578ccf411ec2fb8 Mon Sep 17 00:00:00 2001 From: Collin Duncan <3679940+cgduncan7@users.noreply.github.com> Date: Thu, 31 Aug 2023 17:39:03 +0200 Subject: [PATCH] Fixing the save button from not being clicked for waitlists in Dutch; Adding some network idle waits for logging in and out; Accepting dialog when deleting a waitlist entry --- src/runner/baanreserveren/service.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/runner/baanreserveren/service.ts b/src/runner/baanreserveren/service.ts index b8eac77..8089971 100644 --- a/src/runner/baanreserveren/service.ts +++ b/src/runner/baanreserveren/service.ts @@ -111,6 +111,7 @@ export class BaanReserverenService { .catch((e: Error) => { throw new RunnerLoginSubmitError(e) }) + await this.page.waitForNetworkIdle() this.startSession(username) } @@ -119,6 +120,7 @@ export class BaanReserverenService { await this.page.goto( `${BAAN_RESERVEREN_ROOT_URL}/${BaanReserverenUrls.Logout}`, ) + await this.page.waitForNetworkIdle() this.endSession() } @@ -202,7 +204,7 @@ export class BaanReserverenService { } private async navigateToReservations() { - this.loggerService.debug('Navigating to waiting list') + this.loggerService.debug('Navigating to reservations') await this.page .goto(`${BAAN_RESERVEREN_ROOT_URL}/${BaanReserverenUrls.Reservations}`) .catch((e) => { @@ -253,8 +255,17 @@ export class BaanReserverenService { ) } + const acceptedDialogPromise = new Promise((res, rej) => { + this.page.on('dialog', async (dialog) => { + await dialog.accept().catch(rej) + res() + }) + setTimeout(rej, 10000) + }) + const deleteButton = await rows[0].$('a.wl-delete') await deleteButton?.click() + await acceptedDialogPromise } private async openWaitingListDialog() { @@ -378,7 +389,7 @@ export class BaanReserverenService { private async confirmWaitingListDetails() { this.loggerService.debug('Confirming waiting list details') - const saveButton = await this.page.$('input[type="submit"][value="Save"]') + const saveButton = await this.page.$('input[type="submit"]') await saveButton?.click().catch((e) => { throw new RunnerWaitingListConfirmError(e) })