e2e/test/pages/eventPage.js (view raw)
1import {Page} from './_page';
2import {EventDetails} from './eventDetails';
3class _EventPage extends Page {
4 /**
5 *
6 * @param {string} selector
7 * @return {string}
8 */
9 field(selector) {
10 switch (selector) {
11 case 'menu':
12 return '#MenuMoreInfo';
13 case 'title':
14 return '#MenuHeaderTitle';
15 case 'detail tab':
16 return '#DetailsTab';
17 case 'new car tab':
18 return '#NewCarTab';
19 case 'invite tab':
20 return '#InviteTab';
21 }
22 throw new Error('Unknown selector ' + selector);
23 }
24
25 get name() {
26 return 'EventDetail';
27 }
28
29 async open() {
30 this._path = `/e/${global.SCENE.event.id}`;
31 return super.open();
32 }
33 async openMenu() {
34 const menu = await $(this.field('menu'));
35 await menu.click();
36 await browser.saveScreenshotByName(`${this.name}--openMenu`);
37 }
38 async openTab(tab) {
39 await this.openMenu();
40 switch (tab) {
41 case 'details':
42 const tab = await $(this.field('detail tab'));
43 await tab.click();
44 global.SCENE.scene = EventDetails;
45 await EventDetails.waitForDisplayed();
46 }
47 }
48
49 async submit() {
50 await super.submit();
51 }
52}
53export const EventPage = new _EventPage('/event/myevent-id');