Untitled
unknown
plain_text
2 years ago
28 kB
3
Indexable
import { ACCOUNTS } from '../../data/accounts' import { getFormattedDate } from '../../utils/date_helper' import bookingsPage from '../../pages/bookings.page' import { cleanupBookings } from '../../utils/bookings_cleanup' import pages from '../../utils/pages' Feature('Editing booked desk') Before(async ({ I, loginPage }) => { I.amOnPage('/') loginPage.sendForm(ACCOUNTS.USER_ROLE!.email, ACCOUNTS.USER_ROLE!.password) await cleanupBookings() }) Scenario( '@861mz422k As a user I am able to edit the date of booked desk via "Bookings" tab', async ({ I, bookPage, mainPage }) => { const nextDate = getFormattedDate(1) // ('----------------------------------') // ('Creating a desk booking') // ('----------------------------------') // Navigates to book tab and filters the areas by Meeting rooms. Selects 1st Floor and first room I.amOnPage(pages.goto.bookTab) I.see('Book a space') I.click(bookPage.buttons.fullDayOption) I.waitForElement(bookPage.fields.areaSelector) I.click(bookPage.fields.areaSelector) I.click(bookPage.areaTypes('Desk areas')) I.click(bookPage.floorAndRoomSelect (1, 1)) // Grabs the booking office name, floor, and room numbers from the title header const bookingDetails = await I.grabTextFrom(bookPage.headers.deskBookingTitle) const officeName = bookingDetails.split('·')[0].trim() const floorNumber = bookingDetails.split('·')[1].trim() const roomNumber = bookingDetails.split('·')[2].trim() // Grabs the desk name from the booking specification container const deskName = await I.grabTextFrom(bookPage.fields.deskName) // Grabs the date from the booking specification container and converts it to mount long and day numeric (June 23) const dateStr = await I.grabTextFrom(bookPage.headers.dateContainer) const date = new Date(dateStr) const formatter = new Intl.DateTimeFormat('en-US', { day: 'numeric', month: 'long' }) const formattedDate = formatter.format(date) // Adds one additional day to the format from above const nextDayDate = new Date(date) nextDayDate.setDate(nextDayDate.getDate() + 1) const formattedNextDay = formatter.format(nextDayDate) // Formats the date to day numeric, month short, year numeric (23 Jun 2023) const formatterDateStr = new Intl.DateTimeFormat('en-DE', { day: 'numeric', month: 'short', year: 'numeric' }) const formattedNextDayDateStr = formatterDateStr.format(nextDayDate) const formattedDayDateStr = formatterDateStr.format(date) // Grabs the start and end booking time from the booking specification container const startTime = await I.grabTextFrom(bookPage.fields.startTime) const endTime = await I.grabTextFrom(bookPage.fields.endTime) // Confirms the booking and waits for the booking confirmation popup I.click(bookPage.buttons.confirmBooking) I.waitForElement(bookPage.fields.bookingConfirmationModal) within(bookPage.fields.bookingConfirmationModal, () => { I.see(bookingDetails.trim()) I.see(deskName.trim()) I.see(formattedDate) I.see(startTime) I.see(endTime) }) // Completes the booking and waits for the upcomingBooking element I.click(bookPage.buttons.done) I.waitForElement(bookPage.fields.upcomingBooking) within(bookPage.fields.upcomingBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', bookPage.headers.bookedIcon) I.see('Full day') }) // Enters into the booking placeholder from the upcoming booking element I.click(bookPage.fields.upcomingBooking) I.waitForElement(bookPage.fields.upcomingBookingInfo) within(bookPage.fields.upcomingBookingInfo, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(startTime) I.see(endTime) }) // Navigates to schedule tab and waits for the booking placeholder element I.amOnPage(pages.goto.scheduleTab) I.waitForElement(mainPage.fields.viewBooking) within(mainPage.fields.viewBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', mainPage.headers.bookedIcon) I.see('Full day') }) // Navigates to bookingsTab and checks information from the info container I.amOnPage(pages.goto.bookingsTab) within(bookingsPage.fields.bookingInfoContainer, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.see(ACCOUNTS.USER_ROLE!.email) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(startTime) I.see(endTime) }) // ('----------------------------------') // ('Editing the booked desk') // ('----------------------------------') // Clicks on the edit button from the bookings tab and changes the desk booking date I.click(bookingsPage.buttons.editBooking) I.click(bookingsPage.fields.editCalendar) I.click(bookPage.dateSelector(nextDate)) // Confirms the edited booking and waits for the booking confirmation popup I.click(bookPage.buttons.confirmBooking) I.waitForElement(bookPage.fields.bookingConfirmationModal) within(bookPage.fields.bookingConfirmationModal, () => { I.see(bookingDetails.trim()) I.see(deskName.trim()) I.see(formattedNextDay) I.see(startTime) I.see(endTime) }) // Confirms the edit and checks the information in the booking info container I.click(bookPage.buttons.done) I.waitForElement(bookingsPage.fields.bookingInfoContainer) within(bookingsPage.fields.bookingInfoContainer, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedNextDayDateStr) I.see(startTime) I.see(endTime) }) // Navigates to the book tab and checks that there are no bookings for the current date I.amOnPage(pages.goto.bookTab) I.waitForElement(bookPage.fields.emptyBookingContainer) within(bookPage.fields.emptyBookingContainer, () => { I.see('No bookings on this day') }) // Chooses the next day and confirms the edited booking I.click(bookPage.buttons.calendarDropDown) I.click(bookPage.calendarDatePicker(1)) I.waitForElement(bookPage.fields.upcomingBooking) within(bookPage.fields.upcomingBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', bookPage.headers.bookedIcon) I.see('Full day') }) // Clicks on the booking placeholder and checks information I.click(bookPage.fields.upcomingBooking) I.waitForElement(bookPage.fields.upcomingBookingInfo) within(bookPage.fields.upcomingBookingInfo, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedNextDayDateStr) I.see(startTime) I.see(endTime) }) // Verification in the Schedule tab of Desk name and that only one booking is made // *This can run from Sunday to Thursday because of weekend logic I.amOnPage(pages.goto.scheduleTab) I.waitForElement(mainPage.fields.viewBooking) within(mainPage.fields.viewBooking, () => { I.waitForText(deskName.trim()) I.seeTextEquals('Booked', mainPage.headers.bookedIcon) I.see('Full day') }) }, ).tag('@deskbird').tag('@book').tag('@deskBooking').tag('update').tag('regression') Scenario( '@861mz9rwp As a user I am able to edit the desk number of booked desk via "Bookings" tab', async ({ I, bookPage, mainPage }) => { // ('----------------------------------') // ('Creating a desk booking') // ('----------------------------------') // Navigates to book tab and filters the areas by Meeting rooms. Selects 1st Floor and first room I.amOnPage(pages.goto.bookTab) I.see('Book a space') I.click(bookPage.buttons.fullDayOption) I.waitForElement(bookPage.fields.areaSelector) I.click(bookPage.fields.areaSelector) I.click(bookPage.areaTypes('Desk areas')) I.click(bookPage.floorAndRoomSelect (1, 1)) // Grabs the booking office name, floor, and room numbers from the title const bookingDetails = await I.grabTextFrom(bookPage.headers.deskBookingTitle) const officeName = bookingDetails.split('·')[0].trim() const floorNumber = bookingDetails.split('·')[1].trim() const roomNumber = bookingDetails.split('·')[2].trim() // Grabs the desk name from the booking specification container const deskName = await I.grabTextFrom(bookPage.fields.deskName) // Grabs the date from the booking specification container and converts it to month long and day numeric (June 23) const dateStr = await I.grabTextFrom(bookPage.headers.dateContainer) const date = new Date(dateStr) const formatter = new Intl.DateTimeFormat('en-US', { day: 'numeric', month: 'long' }) const formattedDate = formatter.format(date) // Formats the date to day numeric, month short, year numeric (23 Jun 2023) const formatterDateStr = new Intl.DateTimeFormat('en-DE', { day: 'numeric', month: 'short', year: 'numeric' }) const formattedDayDateStr = formatterDateStr.format(date) // Grabs the start and end booking time from the booking specification container const startTime = await I.grabTextFrom(bookPage.fields.startTime) const endTime = await I.grabTextFrom(bookPage.fields.endTime) // Confirms the booking and waits for the booking confirmation popup I.click(bookPage.buttons.confirmBooking) I.waitForElement(bookPage.fields.bookingConfirmationModal) within(bookPage.fields.bookingConfirmationModal, () => { I.see(bookingDetails.trim()) I.see(deskName.trim()) I.see(formattedDate) I.see(startTime) I.see(endTime) }) // Completes the booking and waits for the upcomingBooking element I.click(bookPage.buttons.done) I.waitForElement(bookPage.fields.upcomingBooking) within(bookPage.fields.upcomingBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', bookPage.headers.bookedIcon) I.see('Full day') }) // Enters into the booking placeholder from the upcoming booking element I.click(bookPage.fields.upcomingBooking) I.waitForElement(bookPage.fields.upcomingBookingInfo) within(bookPage.fields.upcomingBookingInfo, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(startTime) I.see(endTime) }) // Navigates to schedule tab and waits for the booking placeholder element I.amOnPage(pages.goto.scheduleTab) I.waitForElement(mainPage.fields.viewBooking) within(mainPage.fields.viewBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', mainPage.headers.bookedIcon) I.see('Full day') }) // Navigates to bookingsTab and checks information from the info container I.amOnPage(pages.goto.bookingsTab) within(bookingsPage.fields.bookingInfoContainer, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.see(ACCOUNTS.USER_ROLE!.email) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(startTime) I.see(endTime) }) // ('----------------------------------') // ('Editing the booked desk') // ('----------------------------------') // Clicks on the edit button from the bookings tab and changes the desk number I.click(bookingsPage.buttons.editBooking) I.waitForElement(bookPage.deskNumberSelect('Desk 2')) I.click(bookPage.deskNumberSelect('Desk 2')) // Grabs the new desk name from the booking specification container const newDeskName = await I.grabTextFrom(bookPage.fields.deskName) // Confirms the edited booking and waits for the booking confirmation popup I.click(bookPage.buttons.confirmBooking) I.waitForElement(bookPage.fields.bookingConfirmationModal) within(bookPage.fields.bookingConfirmationModal, () => { I.see(bookingDetails.trim()) // I.see(newDeskName.trim()) // BLOCKED BECAUSE OF A BUG I.see(formattedDate) I.see(startTime) I.see(endTime) }) // Confirms the edit and checks the information in the booking info container I.click(bookPage.buttons.done) I.waitForElement(bookingsPage.fields.bookingInfoContainer) within(bookingsPage.fields.bookingInfoContainer, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(newDeskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(dateStr.trim()) I.see(startTime) I.see(endTime) }) // Navigates to the book tab and checks that there are no bookings for the current date I.amOnPage(pages.goto.bookTab) I.waitForElement(bookPage.fields.upcomingBooking) within(bookPage.fields.upcomingBooking, () => { I.see(newDeskName.trim()) I.seeTextEquals('Booked', bookPage.headers.bookedIcon) I.see('Full day') }) // Clicks on the booking placeholder and checks information I.click(bookPage.fields.upcomingBooking) I.waitForElement(bookPage.fields.upcomingBookingInfo) within(bookPage.fields.upcomingBookingInfo, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(newDeskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(dateStr.trim()) I.see(startTime) I.see(endTime) }) // Verification in the Schedule tab of Desk name and that only one booking is made // *This can run from Sunday to Thursday because of weekend logic I.amOnPage(pages.goto.scheduleTab) I.waitForElement(mainPage.fields.viewBooking) within(mainPage.fields.viewBooking, () => { I.waitForText(newDeskName.trim()) I.seeTextEquals('Booked', mainPage.headers.bookedIcon) I.see('Full day') }) }, ).tag('@deskbird').tag('@book').tag('@deskBooking').tag('update').tag('regression') Scenario( '@861mz9fhd As a user I am able to edit the time of booked desk via "Bookings" tab', async ({ I, bookPage, mainPage }) => { // ('----------------------------------') // ('Creating a desk booking') // ('----------------------------------') // Navigates to book tab and filters the areas by Meeting rooms. Selects 1st Floor and first room I.amOnPage(pages.goto.bookTab) I.see('Book a space') I.click(bookPage.buttons.fullDayOption) I.waitForElement(bookPage.fields.areaSelector) I.click(bookPage.fields.areaSelector) I.click(bookPage.areaTypes('Desk areas')) I.click(bookPage.floorAndRoomSelect (1, 1)) // Grabs the booking office name, floor, and room numbers from the title const bookingDetails = await I.grabTextFrom(bookPage.headers.deskBookingTitle) const officeName = bookingDetails.split('·')[0].trim() const floorNumber = bookingDetails.split('·')[1].trim() const roomNumber = bookingDetails.split('·')[2].trim() // Grabs the desk name from the booking specification container const deskName = await I.grabTextFrom(bookPage.fields.deskName) // Grabs the date from the booking specification container and converts it to month long and day numeric (June 23) const dateStr = await I.grabTextFrom(bookPage.headers.dateContainer) const date = new Date(dateStr) const formatter = new Intl.DateTimeFormat('en-US', { day: 'numeric', month: 'long' }) const formattedDate = formatter.format(date) // Formats the date to day numeric, month short, year numeric (23 Jun 2023) const formatterDateStr = new Intl.DateTimeFormat('en-DE', { day: 'numeric', month: 'short', year: 'numeric' }) const formattedDayDateStr = formatterDateStr.format(date) // Grabs the start and end booking time from the booking specification container const startTime = await I.grabTextFrom(bookPage.fields.startTime) const endTime = await I.grabTextFrom(bookPage.fields.endTime) // Confirms the booking and waits for the booking confirmation popup I.click(bookPage.buttons.confirmBooking) I.waitForElement(bookPage.fields.bookingConfirmationModal) within(bookPage.fields.bookingConfirmationModal, () => { I.see(bookingDetails.trim()) I.see(deskName.trim()) I.see(formattedDate) I.see(startTime) I.see(endTime) }) // Completes the booking and waits for the upcomingBooking element I.click(bookPage.buttons.done) I.waitForElement(bookPage.fields.upcomingBooking) within(bookPage.fields.upcomingBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', bookPage.headers.bookedIcon) I.see('Full day') }) // Enters into the booking placeholder from the upcoming booking element I.click(bookPage.fields.upcomingBooking) I.waitForElement(bookPage.fields.upcomingBookingInfo) within(bookPage.fields.upcomingBookingInfo, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(startTime) I.see(endTime) }) // Navigates to schedule tab and waits for the booking placeholder element I.amOnPage(pages.goto.scheduleTab) I.waitForElement(mainPage.fields.viewBooking) within(mainPage.fields.viewBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', mainPage.headers.bookedIcon) I.see('Full day') }) // Navigates to bookingsTab and checks information from the info container I.amOnPage(pages.goto.bookingsTab) within(bookingsPage.fields.bookingInfoContainer, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.see(ACCOUNTS.USER_ROLE!.email) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(startTime) I.see(endTime) }) // ('----------------------------------') // ('Editing the booked desk') // ('----------------------------------') // Clicks on the edit button from the bookings tab and changes the start and end times I.click(bookingsPage.buttons.editBooking) I.click(bookPage.fields.editStartTime) I.click(bookPage.timeSelector('10:00 PM')) I.click(bookPage.fields.editEndTime) I.click(bookPage.timeSelector('10:30 PM')) const editedStartTime = await I.grabTextFrom(bookPage.fields.editStartTime) const editedEndTime = await I.grabTextFrom(bookPage.fields.editEndTime) // Confirms the edited booking and waits for the booking confirmation popup I.click(bookPage.buttons.confirmBooking) I.waitForElement(bookPage.fields.bookingConfirmationModal) within(bookPage.fields.bookingConfirmationModal, () => { I.see(bookingDetails.trim()) I.see(deskName.trim()) I.see(formattedDate) I.see(editedStartTime) I.see(editedEndTime) }) // Confirms the edit and checks the information in the booking info container I.click(bookPage.buttons.done) I.waitForElement(bookingsPage.fields.bookingInfoContainer) within(bookingsPage.fields.bookingInfoContainer, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(dateStr.trim()) I.see(editedStartTime) I.see(editedEndTime) }) // Navigates to the book tab and checks that there are no bookings for the current date I.amOnPage(pages.goto.bookTab) I.waitForElement(bookPage.fields.upcomingBooking) within(bookPage.fields.upcomingBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', bookPage.headers.bookedIcon) I.see(editedStartTime) I.see(editedEndTime) }) // Enters into the booking placeholder from the upcoming booking element I.click(bookPage.fields.upcomingBooking) I.waitForElement(bookPage.fields.upcomingBookingInfo) within(bookPage.fields.upcomingBookingInfo, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(editedStartTime) I.see(editedEndTime) }) // Verification in the Schedule tab of Desk name and that only one booking is made // *This can run from Sunday to Thursday because of weekend logic I.amOnPage(pages.goto.scheduleTab) I.waitForElement(mainPage.fields.viewBooking) within(mainPage.fields.viewBooking, () => { I.waitForText(deskName.trim()) I.seeTextEquals('Booked', mainPage.headers.bookedIcon) I.see(editedStartTime) I.see(editedEndTime) }) }, ).tag('@deskbird').tag('@book').tag('@deskBooking').tag('update').tag('regression') Scenario( '@861n362mh As a user I am able to edit the desk number of booked desk via the widget in "Book" tab', async ({ I, bookPage, mainPage }) => { // ('----------------------------------') // ('Creating a desk booking') // ('----------------------------------') // Navigates to book tab and filters the areas by Meeting rooms. Selects 1st Floor and first room I.amOnPage(pages.goto.bookTab) I.see('Book a space') I.click(bookPage.buttons.fullDayOption) I.waitForElement(bookPage.fields.areaSelector) I.click(bookPage.fields.areaSelector) I.click(bookPage.areaTypes('Desk areas')) I.click(bookPage.floorAndRoomSelect (1, 1)) // Grabs the booking office name, floor, and room numbers from the title const bookingDetails = await I.grabTextFrom(bookPage.headers.deskBookingTitle) const officeName = bookingDetails.split('·')[0].trim() const floorNumber = bookingDetails.split('·')[1].trim() const roomNumber = bookingDetails.split('·')[2].trim() // Grabs the desk name from the booking specification container const deskName = await I.grabTextFrom(bookPage.fields.deskName) // Grabs the date from the booking specification container and converts it to month long and day numeric (June 23) const dateStr = await I.grabTextFrom(bookPage.headers.dateContainer) const date = new Date(dateStr) const formatter = new Intl.DateTimeFormat('en-US', { day: 'numeric', month: 'long' }) const formattedDate = formatter.format(date) // Formats the date to day numeric, month short, year numeric (23 Jun 2023) const formatterDateStr = new Intl.DateTimeFormat('en-DE', { day: 'numeric', month: 'short', year: 'numeric' }) const formattedDayDateStr = formatterDateStr.format(date) // Grabs the start and end booking time from the booking specification container const startTime = await I.grabTextFrom(bookPage.fields.startTime) const endTime = await I.grabTextFrom(bookPage.fields.endTime) // Confirms the booking and waits for the booking confirmation popup I.click(bookPage.buttons.confirmBooking) I.waitForElement(bookPage.fields.bookingConfirmationModal) within(bookPage.fields.bookingConfirmationModal, () => { I.see(bookingDetails.trim()) I.see(deskName.trim()) I.see(formattedDate) I.see(startTime) I.see(endTime) }) // Completes the booking and waits for the upcomingBooking element I.click(bookPage.buttons.done) I.waitForElement(bookPage.fields.upcomingBooking) within(bookPage.fields.upcomingBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', bookPage.headers.bookedIcon) I.see('Full day') }) // Enters into the booking placeholder from the upcoming booking element I.click(bookPage.fields.upcomingBooking) I.waitForElement(bookPage.fields.upcomingBookingInfo) within(bookPage.fields.upcomingBookingInfo, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(startTime) I.see(endTime) }) // Navigates to schedule tab and waits for the booking placeholder element I.amOnPage(pages.goto.scheduleTab) I.waitForElement(mainPage.fields.viewBooking) within(mainPage.fields.viewBooking, () => { I.see(deskName.trim()) I.seeTextEquals('Booked', mainPage.headers.bookedIcon) I.see('Full day') }) // Navigates to bookingsTab and checks information from the info container I.amOnPage(pages.goto.bookingsTab) within(bookingsPage.fields.bookingInfoContainer, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(deskName.trim()) I.see(ACCOUNTS.USER_ROLE!.email) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(formattedDayDateStr) I.see(startTime) I.see(endTime) }) // ('----------------------------------') // ('Editing the booked desk') // ('----------------------------------') // Clicks on the edit button from the book tab and changes the desk number I.amOnPage(pages.goto.bookTab) I.waitForElement(bookPage.fields.upcomingBooking) I.click(bookPage.fields.upcomingBooking) I.click(bookPage.buttons.editBooking) I.waitForElement(bookPage.deskNumberSelect('Desk 2')) I.click(bookPage.deskNumberSelect('Desk 2')) // Grabs the new desk name from the booking specification container const newDeskName = await I.grabTextFrom(bookPage.fields.deskName) // Confirms the edited booking and waits for the booking confirmation popup I.click(bookPage.buttons.confirmBooking) I.waitForElement(bookPage.fields.bookingConfirmationModal) within(bookPage.fields.bookingConfirmationModal, () => { I.see(bookingDetails.trim()) // I.see(newDeskName.trim()) // BLOCKED BECAUSE OF A BUG I.see(formattedDate) I.see(startTime) I.see(endTime) }) // Confirms the edit and checks the information in the booking info container I.click(bookPage.buttons.done) I.waitForElement(bookingsPage.fields.bookingInfoContainer) within(bookingsPage.fields.bookingInfoContainer, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(newDeskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(dateStr.trim()) I.see(startTime) I.see(endTime) }) // Navigates to the book tab and checks that there are no bookings for the current date I.amOnPage(pages.goto.bookTab) I.waitForElement(bookPage.fields.upcomingBooking) within(bookPage.fields.upcomingBooking, () => { I.see(newDeskName.trim()) I.seeTextEquals('Booked', bookPage.headers.bookedIcon) I.see('Full day') }) // Clicks on the booking placeholder and checks information I.click(bookPage.fields.upcomingBooking) I.waitForElement(bookPage.fields.upcomingBookingInfo) within(bookPage.fields.upcomingBookingInfo, () => { I.see(officeName) I.see(floorNumber) I.see(roomNumber) I.see(newDeskName.trim()) I.seeTextEquals('Booked', bookingsPage.headers.bookedIcon) I.see(dateStr.trim()) I.see(startTime) I.see(endTime) }) // Verification in the Schedule tab of Desk name and that only one booking is made // *This can run from Sunday to Thursday because of weekend logic I.amOnPage(pages.goto.scheduleTab) I.waitForElement(mainPage.fields.viewBooking) within(mainPage.fields.viewBooking, () => { I.waitForText(newDeskName.trim()) I.seeTextEquals('Booked', mainPage.headers.bookedIcon) I.see('Full day') }) }, ).tag('@deskbird').tag('@book').tag('@deskBooking').tag('update').tag('regression') After(async ({ I }) => { I.amOnPage(pages.goto.scheduleTab) await cleanupBookings() })
Editor is loading...