MCPcopy
hub / github.com/linuxfoundation/crowd.dev / createSingleTenant

Function createSingleTenant

backend/src/database/initializers/seed.ts:34–126  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

32const log = getServiceLogger()
33
34async 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')

Callers 1

seed.tsFile · 0.85

Calls 7

createWithMemberMethod · 0.95
findAndCountAllMethod · 0.95
createMethod · 0.95
infoMethod · 0.80
createMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected