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