-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreate-test-data.js
58 lines (50 loc) · 1.55 KB
/
create-test-data.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
import _ from 'lodash';
import bcrypt from 'bcrypt';
import Bluebird from 'bluebird';
import DiveLogs from './service/data/dive-logs.table';
import faker from 'faker';
import fs from 'fs';
import generator from './tests/generator';
import Users from './service/data/users.table';
Bluebird.promisifyAll(fs);
module.exports = gulpUtil => {
const adminHash = bcrypt.hashSync('adm!n', bcrypt.genSaltSync(10));
const adminUser = {
userName: 'TestAdmin',
email: '[email protected]',
displayEmail: '[email protected]',
displayName: 'Test Administrator',
role: 'admin',
passwordHash: adminHash
};
const users = [];
for (let i = 0; i < 6; i++) {
users.push(generator.generateUser('divelogs'));
}
gulpUtil.log(' * creating 6 users...');
return Users.createAsync(adminUser)
.then(() => {
return Users.createAsync(users);
})
.then(result => {
const recordCount = faker.random.number({min: 900, max: 1300});
const userIds = _.map(result, u => { return u.get('userId'); });
const diveLogs = [];
gulpUtil.log(' * creating', recordCount, 'dive log entries...');
for (let i = 0; i < recordCount; i++) {
diveLogs.push(generator.generateDiveLogEntry(userIds));
}
return DiveLogs.createAsync(diveLogs);
})
.then(() => {
const fileName = './logs/test-users';
gulpUtil.log(' * writing user information to', gulpUtil.colors.yellow(fileName));
return fs.writeFileAsync(
fileName,
JSON.stringify(users, null, ' '),
'utf8');
})
.then(() => {
return _.map(users, u => { return u.userName; });
});
};