import { DashboardPage } from '..'; import BasePage from '../../Base'; import { ToolbarPage } from '../common/Toolbar'; import { expect } from '@playwright/test'; import { TopbarPage } from '../common/Topbar'; import { CalendarSideMenuPage } from './CalendarSideMenu'; import { CalendarMonthPage } from './CalendarMonth'; import { CalendarYearPage } from './CalendarYear'; import { CalendarDayDateTimePage } from './CalendarDayDateTime'; import { CalendarWeekDateTimePage } from './CalendarWeekDateTime'; import { CalendarDayDatePage } from './CalendarDayDate'; import { CalendarWeekDatePage } from './CalendarWeekDate'; export class CalendarPage extends BasePage { readonly dashboard: DashboardPage; readonly toolbar: ToolbarPage; readonly topbar: TopbarPage; readonly sideMenu: CalendarSideMenuPage; readonly calendarMonth: CalendarMonthPage; readonly calendarYear: CalendarYearPage; readonly calendarDayDateTime: CalendarDayDateTimePage; readonly calendarWeekDateTime: CalendarWeekDateTimePage; readonly calendarDayDate: CalendarDayDatePage; readonly calendarWeekDate: CalendarWeekDatePage; constructor(dashboard: DashboardPage) { super(dashboard.rootPage); this.dashboard = dashboard; this.toolbar = new ToolbarPage(this); this.topbar = new TopbarPage(this); this.sideMenu = new CalendarSideMenuPage(this); this.calendarMonth = new CalendarMonthPage(this); this.calendarYear = new CalendarYearPage(this); this.calendarDayDateTime = new CalendarDayDateTimePage(this); this.calendarWeekDateTime = new CalendarWeekDateTimePage(this); this.calendarDayDate = new CalendarDayDatePage(this); this.calendarWeekDate = new CalendarWeekDatePage(this); } get() { return this.dashboard.rootPage.getByTestId('nc-calendar-wrapper'); } async verifySideBarClosed() { const sideBar = this.get().getByTestId('nc-calendar-side-menu'); const classList = await sideBar.evaluate(el => [...el.classList]); expect(classList).not.toContain('nc-calendar-side-menu-open'); } async verifySideBarOpen() { const sideBar = this.get().getByTestId('nc-calendar-side-menu'); const classList = await sideBar.evaluate(el => [...el.classList]); expect(classList).toContain('nc-calendar-side-menu-open'); } async waitLoading() { await this.rootPage.waitForTimeout(2000); } async toggleSideBar() { await this.rootPage.getByTestId('nc-calendar-side-bar-btn').click(); await this.rootPage.waitForTimeout(500); } }