mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.7 KiB
65 lines
1.7 KiB
import BasePage from '../../Base'; |
|
import { CalendarPage } from './index'; |
|
|
|
export class CalendarWeekDateTimePage extends BasePage { |
|
readonly parent: CalendarPage; |
|
|
|
constructor(parent: CalendarPage) { |
|
super(parent.rootPage); |
|
this.parent = parent; |
|
} |
|
|
|
get() { |
|
return this.rootPage.getByTestId('nc-calendar-week-view'); |
|
} |
|
|
|
getRecordContainer() { |
|
return this.get().getByTestId('nc-calendar-week-record-container'); |
|
} |
|
|
|
async dragAndDrop({ |
|
record, |
|
to, |
|
}: { |
|
record: string; |
|
to: { |
|
dayIndex: number; |
|
hourIndex: number; |
|
}; |
|
}) { |
|
const recordContainer = this.getRecordContainer(); |
|
const recordCard = recordContainer.getByTestId(`nc-calendar-week-record-${record}`); |
|
const toDay = this.get() |
|
.getByTestId('nc-calendar-week-day') |
|
.nth(to.dayIndex) |
|
.getByTestId('nc-calendar-week-hour') |
|
.nth(to.hourIndex); |
|
const cord = await toDay.boundingBox(); |
|
|
|
await recordCard.hover(); |
|
await this.rootPage.mouse.down(); |
|
await this.rootPage.waitForTimeout(500); |
|
|
|
await this.rootPage.mouse.move(cord.x + cord.width / 2, cord.y + cord.height / 2); |
|
await this.rootPage.mouse.up(); |
|
} |
|
|
|
async selectHour({ hourIndex, dayIndex }: { dayIndex: number; hourIndex: number }) { |
|
const day = this.get().getByTestId('nc-calendar-week-day').nth(dayIndex); |
|
|
|
const hour = day.getByTestId('nc-calendar-week-hour').nth(hourIndex); |
|
|
|
await this.waitForResponse({ |
|
uiAction: () => |
|
hour.click({ |
|
force: true, |
|
position: { |
|
x: -1, |
|
y: -1, |
|
}, |
|
}), |
|
requestUrlPathToMatch: '/api/v1/db/data/noco', |
|
httpMethodsToMatch: ['GET'], |
|
}); |
|
} |
|
}
|
|
|