all repos — caroster @ v0.4.1

[Octree] Group carpool to your event https://caroster.io

backend/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');