()
| 32 | const log = getServiceLogger() |
| 33 | |
| 34 | async function createSingleTenant() { |
| 35 | const mockIRepositoryOptions = await SequelizeTestUtils.getTestIRepositoryOptions(db) |
| 36 | |
| 37 | const activities = require('./activities.json') |
| 38 | |
| 39 | const as = new ActivityService(mockIRepositoryOptions) |
| 40 | const ts = new TagService(mockIRepositoryOptions) |
| 41 | const ms = new MemberService(mockIRepositoryOptions) |
| 42 | |
| 43 | log.info('Starting seeding the db...') |
| 44 | |
| 45 | // create activities with members |
| 46 | for (const activity of activities) { |
| 47 | if (activity.member.email !== null) { |
| 48 | await as.createWithMember(activity) |
| 49 | } |
| 50 | } |
| 51 | |
| 52 | const memberReferenceArray = (await ms.findAndCountAll({})).rows |
| 53 | |
| 54 | const tags = require('./tags.json') |
| 55 | |
| 56 | // create tags with member associations |
| 57 | for (const tag of tags) { |
| 58 | tag.members = [] |
| 59 | // select 0-5 members to associate with created tag |
| 60 | const selectXMembers = Math.floor(Math.random() * 5) |
| 61 | |
| 62 | for (let i = 0; i < selectXMembers; i++) { |
| 63 | const memberIdx = Math.floor(Math.random() * memberReferenceArray.length) |
| 64 | |
| 65 | // check member already added, if yes we don't need to readd |
| 66 | if (!(memberReferenceArray[memberIdx].id in tag.members)) { |
| 67 | tag.members.push(memberReferenceArray[memberIdx].id) |
| 68 | } |
| 69 | } |
| 70 | |
| 71 | await ts.create(tag) |
| 72 | } |
| 73 | |
| 74 | // create reports with widgets |
| 75 | const reports = require('./reports.json') |
| 76 | |
| 77 | for (const report of reports) { |
| 78 | // first create the widgets with empty reports |
| 79 | const widgetsArray: any = [] |
| 80 | for (const widget of report.widgets) { |
| 81 | widgetsArray.push(await WidgetRepository.create(widget, mockIRepositoryOptions)) |
| 82 | } |
| 83 | |
| 84 | report.widgets = widgetsArray.map((i) => i.id) |
| 85 | |
| 86 | // create report with widgets |
| 87 | await ReportRepository.create(report, mockIRepositoryOptions) |
| 88 | } |
| 89 | |
| 90 | // create widgets that don't have report relationship |
| 91 | const widgets = require('./widgets.json') |
no test coverage detected