all repos — caroster @ 6fc46298959978b218a66da7352e0fae5f470e4c

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

e2e/test/pages/utils/scene.js (view raw)

 1/* eslint-disable class-methods-use-this */
 2const faker = require('faker');
 3const axios = require('axios');
 4
 5function randomPhone() {
 6  return `${faker.random.arrayElement([
 7    '76',
 8    '78',
 9    '79',
10    '77',
11  ])}${faker.random.number({
12    min: 100,
13    max: 999,
14  })}${faker.random.number({
15    min: 10,
16    max: 99,
17  })}${faker.random.number({min: 10, max: 99})}`;
18}
19
20class _Scene {
21  constructor() {
22    this.scene = undefined;
23    this.actor = this.randomActor();
24    this.event = this.randomEvent();
25    this.car = this.randomCar();
26  }
27
28  /**
29   * @returns {Object}
30   */
31  randomActor() {
32    return {
33      email: faker.internet.email(),
34      phone: faker.random.arrayElement(['+41', '0']) + randomPhone(),
35    };
36  }
37  /**
38   * @return {Object}
39   */
40  randomEvent() {
41    return {
42      address: `${faker.address.streetAddress()}, ${faker.address.zipCode()} ${faker.address.city()}`,
43      date: faker.date.future(),
44      name: `${faker.hacker.noun()} ${faker.hacker.verb()} ${faker.hacker.adjective()}`,
45    };
46  }
47
48  /**
49   * @return {Object}
50   */
51  randomCar() {
52    return {
53      name: `${faker.hacker.verb()} ${faker.commerce.productName()}`,
54      seats: faker.random.number({min: 1, max: 8}),
55      meeting: `${faker.address.streetAddress()}, ${faker.address.zipCode()} ${faker.address.city()}`,
56      meeting_date: faker.date.future(),
57      details: faker.lorem.paragraph(),
58    };
59  }
60
61  /**
62   * Create an event and set an event id.
63   * @return {string} the new event id
64   */
65  async createEvent() {
66    const {
67      data: {id},
68    } = await axios.post(`${process.env.BASE_URL}/events`, {
69      address: this.event.address,
70      date: this.event.date.toISOString(),
71      email: this.actor.email,
72      name: this.event.name,
73    });
74    this.event.id = id;
75    return id;
76  }
77}
78exports.Scene = new _Scene();