-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata-generator.js
60 lines (49 loc) · 1.86 KB
/
data-generator.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
const dayjs = require('dayjs');
const faker = require('faker');
const Districts = require('./data/locations.json');
const Genders = require('./data/genders');
const IdTypes = require('./data/id-types');
const Types = require('./data/types');
const Reasons = require('./data/reasons');
const generateRandomData = (context, events, done) => {
const pickRandom = (array) => array[Math.floor(Math.random() * array.length)];
const generateNumber = (max) => faker.datatype.number(max).toString().padStart(max.toString().length, '0');
const mobilePhone = `015${generateNumber(99999999)}`;
const registerDistrict = pickRandom(Districts);
const registerThana = pickRandom(registerDistrict.thanas);
const dateOfBirth = dayjs(faker.date.past(30, dayjs().subtract(18, 'years').toDate()));
const register = {
mobilePhone,
name: 'Applicant',
district: registerDistrict.id,
thana: registerThana.id,
dateOfBirth: dayjs(dateOfBirth).format('YYYY-MM-DD'),
gender: pickRandom(Object.keys(Genders)),
idType: pickRandom(Object.keys(IdTypes)),
idNumber: generateNumber(9999999999999999)
};
const login = {
mobilePhone,
dateOfBirth: dateOfBirth.format('DDMMYYYY')
};
const applyDistrict = pickRandom(Districts);
const applyThana = pickRandom(registerDistrict.thanas);
const apply = {
fromLocation: `Location A, ${registerThana.en}, ${registerDistrict.en}`,
toLocation: 'Location B',
district: applyDistrict.id,
thana: applyThana.id,
dateTime: dayjs(faker.date.soon()).toISOString(),
durationInHour: pickRandom(Array.from({length: 12}, (_, n) => n + 1)),
type: pickRandom(Object.keys(Types)),
reason: pickRandom(Reasons).en,
includeVehicle: false
};
context.vars.register = register;
context.vars.login = login;
context.vars.apply = apply;
return done();
};
module.exports = {
generateRandomData
};