e2e/test/pages/utils/scene.js (view raw)
1/* eslint-disable class-methods-use-this */
2const faker = require('faker');
3const axios = require('axios');
4class _Scene {
5 constructor() {
6 this.scene = undefined;
7 this.actor = this.randomActor();
8 this.event = this.randomEvent();
9 }
10
11 /**
12 * @returns {Object}
13 */
14 randomActor() {
15 return {
16 email: faker.internet.email(),
17 };
18 }
19
20 randomEvent() {
21 return {
22 address: `${faker.address.streetAddress()}, ${faker.address.zipCode()} ${faker.address.city()}`,
23 date: faker.date.future(),
24 name: `${faker.hacker.noun()} ${faker.hacker.verb()} ${faker.hacker.adjective()}`,
25 };
26 }
27 /**
28 * Create an event and set an event id.
29 * @return {string} the new event id
30 */
31 async createEvent() {
32 const {
33 data: {id},
34 } = await axios.post(`${process.env.BASE_URL}/events`, {
35 address: this.event.address,
36 date: this.event.date.toISOString(),
37 email: this.actor.email,
38 name: this.event.name,
39 });
40 this.event.id = id;
41 return id;
42 }
43}
44exports.Scene = new _Scene();