-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtest-helper.js
More file actions
executable file
·84 lines (74 loc) · 2.9 KB
/
test-helper.js
File metadata and controls
executable file
·84 lines (74 loc) · 2.9 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* eslint-env mocha */
global.applicationPath = global.applicationPath || __dirname
global.testConfiguration = global.testConfiguration || {}
global.testConfiguration.userProfileFields = ['full-name', 'contact-email']
global.testConfiguration.membershipProfileFields = ['display-name', 'display-email']
global.testConfiguration.minimumOrganizationNameLength = 1
global.testConfiguration.maximumOrganizationNameLength = 100
global.testConfiguration.minimumMembershipNameLength = 1
global.testConfiguration.maximumMembershipNameLength = 100
global.testConfiguration.minimumInvitationCodeLength = 1
global.testConfiguration.maximumInvitationCodeLength = 100
const TestHelper = require('@userdashboard/dashboard/test-helper.js')
let organizations
module.exports = {
acceptInvitation,
createInvitation,
createOrganization
}
for (const x in TestHelper) {
module.exports[x] = TestHelper[x]
}
async function setupBefore () {
organizations = require('./index.js')
await organizations.setup()
}
module.exports.createProfile = createProfile
before(setupBefore)
async function createOrganization (user, properties) {
const req = TestHelper.createRequest(`/api/user/organizations/create-organization?accountid=${user.account.accountid}`, 'POST')
req.account = user.account
req.session = user.session
req.body = properties
user.organization = await req.post()
const req2 = TestHelper.createRequest(`/api/user/organizations/organization-membership?organizationid=${user.organization.organizationid}`, 'POST')
req2.account = user.account
req2.session = user.session
req2.body = properties
user.membership = await req2.get()
return user.organization
}
async function createInvitation (owner) {
const code = 'invitation-' + new Date().getTime() + '-' + Math.ceil(Math.random() * 1000)
const req = TestHelper.createRequest(`/api/user/organizations/create-invitation?organizationid=${owner.organization.organizationid}`, 'POST')
req.account = owner.account
req.session = owner.session
req.body = {
'secret-code': code
}
owner.invitation = await req.post()
owner.invitation.secretCode = code
return owner.invitation
}
async function acceptInvitation (user, owner) {
const req = TestHelper.createRequest(`/api/user/organizations/create-membership?invitationid=${owner.invitation.invitationid}`, 'POST')
req.account = user.account
req.session = user.session
req.body = {
'secret-code': owner.invitation.secretCode,
profileid: user.profile.profileid
}
user.membership = await req.post()
return user.membership
}
async function createProfile (user, properties) {
const req = module.exports.createRequest(`/api/user/create-profile?accountid=${user.account.accountid}`)
req.account = user.account
req.session = user.session
if (process.env.ORGANIZATIONS_STORAGE) {
req.storage = organizations
}
req.body = properties
user.profile = await req.route.api.post(req)
return user.profile
}