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 'EventDetail';
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 browser.saveScreenshotByName(`${this.name}--openMenu`);
38 }
39 async openTab(tab) {
40 await this.openMenu();
41 switch (tab) {
42 case 'details':
43 const tab = await $(this.field('detail tab'));
44 await tab.click();
45 global.SCENE.scene = EventDetails;
46 await EventDetails.waitForDisplayed();
47 return;
48 case 'new car':
49 const tab = await $(this.field('new car tab'));
50 await tab.click();
51 global.SCENE.scene = NewCar;
52 }
53 }
54
55 async submit() {
56 await super.submit();
57 }
58}
59export const EventPage = new _EventPage('/event/myevent-id');