@webex/test-users 3.0.0-beta.2 → 3.0.0-beta.200

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/index.js CHANGED
@@ -24,7 +24,7 @@ function fixToken(token) {
24
24
  }
25
25
 
26
26
  if (token.refresh_token_expires_in && !token.refresh_token_expires) {
27
- /* eslint camelcase: [0] */
27
+ /* eslint camelcase: [0] */
28
28
  token.refresh_token_expires = now + token.refresh_token_expires_in * 1000;
29
29
  }
30
30
 
@@ -61,14 +61,14 @@ function getClientCredentials({clientId, clientSecret, idbrokerUrl}) {
61
61
  grant_type: 'client_credentials',
62
62
  scope: 'Identity:SCIM webexsquare:get_conversation',
63
63
  client_id: clientId,
64
- client_secret: clientSecret
64
+ client_secret: clientSecret,
65
65
  },
66
66
  headers: {
67
67
  // Note: we can't request's auth hash here because this endpoint expects
68
68
  // us to send the auth header *without including "Basic "* before the
69
69
  // token string
70
- authorization: btoa(`${clientId}:${clientSecret}`)
71
- }
70
+ authorization: btoa(`${clientId}:${clientSecret}`),
71
+ },
72
72
  })
73
73
  .then((res) => {
74
74
  const token = fixToken(res.body);
@@ -93,13 +93,12 @@ function getClientCredentials({clientId, clientSecret, idbrokerUrl}) {
93
93
  * @returns {Promise<HttpResponseObject>}
94
94
  */
95
95
  function requestWithAuth(options) {
96
- return getClientCredentials(options.body)
97
- .then((authorization) => {
98
- options.headers = options.headers || {};
99
- options.headers.authorization = authorization;
96
+ return getClientCredentials(options.body).then((authorization) => {
97
+ options.headers = options.headers || {};
98
+ options.headers.authorization = authorization;
100
99
 
101
- return request(options);
102
- });
100
+ return request(options);
101
+ });
103
102
  }
104
103
 
105
104
  /**
@@ -132,20 +131,20 @@ function requestWithAuth(options) {
132
131
  */
133
132
 
134
133
  /**
135
- * @typedef {Object} TestUserObject
136
- * @property {string} password
137
- * @property {string} emailAddress
138
- * @property {string} displayName
139
- * @property {string} id
140
- * @property {string} userName
141
- * @property {string} email
142
- * @property {string} name
143
- * @property {string} givenName
144
- * @property {string} type
145
- * @property {Array.<string>} entitlements
146
- * @property {string} orgId
147
- * @property {AccessTokenObject} token
148
- */
134
+ * @typedef {Object} TestUserObject
135
+ * @property {string} password
136
+ * @property {string} emailAddress
137
+ * @property {string} displayName
138
+ * @property {string} id
139
+ * @property {string} userName
140
+ * @property {string} email
141
+ * @property {string} name
142
+ * @property {string} givenName
143
+ * @property {string} type
144
+ * @property {Array.<string>} entitlements
145
+ * @property {string} orgId
146
+ * @property {AccessTokenObject} token
147
+ */
149
148
 
150
149
  /**
151
150
  * Creates a test user
@@ -156,7 +155,10 @@ export function createTestUser(options = {}) {
156
155
  const clientId = options.clientId || process.env.WEBEX_CLIENT_ID;
157
156
  const clientSecret = options.clientSecret || process.env.WEBEX_CLIENT_SECRET;
158
157
  const idbrokerUrl = options.idbrokerUrl || process.env.IDBROKER_BASE_URL;
159
- const cigServiceUrl = options.cigServiceUrl || process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL || process.env.WEBEX_TEST_USERS_CONVERSATION_SERVICE_URL;
158
+ const cigServiceUrl =
159
+ options.cigServiceUrl ||
160
+ process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL ||
161
+ process.env.WEBEX_TEST_USERS_CONVERSATION_SERVICE_URL;
160
162
 
161
163
  if (!clientId) {
162
164
  throw new Error('options.clientId or process.env.WEBEX_CLIENT_ID must be defined');
@@ -171,7 +173,9 @@ export function createTestUser(options = {}) {
171
173
  }
172
174
 
173
175
  if (!cigServiceUrl) {
174
- throw new Error('options.cigServiceUrl or process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL must be defined');
176
+ throw new Error(
177
+ 'options.cigServiceUrl or process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL must be defined'
178
+ );
175
179
  }
176
180
 
177
181
  const body = {
@@ -185,7 +189,8 @@ export function createTestUser(options = {}) {
185
189
  'squaredCallInitiation',
186
190
  'squaredRoomModeration',
187
191
  'squaredInviter',
188
- 'webExSquared'
192
+ 'webExSquared',
193
+ 'basicMessage',
189
194
  ],
190
195
  idbrokerUrl,
191
196
  machineType: options.machineType,
@@ -194,20 +199,21 @@ export function createTestUser(options = {}) {
194
199
  password: options.password || `${uuid.v4()}zAY1*`,
195
200
  roles: options.roles || [],
196
201
  scopes: options.scope || process.env.WEBEX_SCOPE,
197
- type: options.type
202
+ type: options.type,
198
203
  };
199
204
 
200
205
  return requestWithAuth({
201
206
  method: 'POST',
202
207
  uri: `${cigServiceUrl}${BASE_PATH_SECURE}`,
203
208
  json: true,
204
- body
205
- })
206
- .then((res) => Object.assign({
207
- password: body.password,
208
- emailAddress: res.body.user.email,
209
- displayName: res.body.user.name
210
- }, res.body.user, {token: fixToken(res.body.token)}));
209
+ body,
210
+ }).then((res) => ({
211
+ password: body.password,
212
+ emailAddress: res.body.user.email,
213
+ displayName: res.body.user.name,
214
+ ...res.body.user,
215
+ token: fixToken(res.body.token),
216
+ }));
211
217
  }
212
218
 
213
219
  /**
@@ -224,7 +230,10 @@ export function createTestUser(options = {}) {
224
230
  export function loginTestUser(options) {
225
231
  const clientId = options.clientId || process.env.WEBEX_CLIENT_ID;
226
232
  const clientSecret = options.clientSecret || process.env.WEBEX_CLIENT_SECRET;
227
- const cigServiceUrl = options.cigServiceUrl || process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL || process.env.WEBEX_TEST_USERS_CONVERSATION_SERVICE_URL;
233
+ const cigServiceUrl =
234
+ options.cigServiceUrl ||
235
+ process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL ||
236
+ process.env.WEBEX_TEST_USERS_CONVERSATION_SERVICE_URL;
228
237
 
229
238
  if (!clientId) {
230
239
  throw new Error('options.clientId or process.env.WEBEX_CLIENT_ID must be defined');
@@ -235,7 +244,9 @@ export function loginTestUser(options) {
235
244
  }
236
245
 
237
246
  if (!cigServiceUrl) {
238
- throw new Error('options.cigServiceUrl or process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL must be defined');
247
+ throw new Error(
248
+ 'options.cigServiceUrl or process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL must be defined'
249
+ );
239
250
  }
240
251
 
241
252
  return request({
@@ -244,10 +255,9 @@ export function loginTestUser(options) {
244
255
  json: true,
245
256
  body: _.defaultsDeep(options, {
246
257
  clientId,
247
- clientSecret
248
- })
249
- })
250
- .then((res) => fixToken(res.body));
258
+ clientSecret,
259
+ }),
260
+ }).then((res) => fixToken(res.body));
251
261
  }
252
262
 
253
263
  /**
@@ -261,10 +271,15 @@ export function loginTestUser(options) {
261
271
  * @returns {Promise}
262
272
  */
263
273
  export function removeTestUser(options = {}) {
264
- const cigServiceUrl = options.cigServiceUrl || process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL || process.env.WEBEX_TEST_USERS_CONVERSATION_SERVICE_URL;
274
+ const cigServiceUrl =
275
+ options.cigServiceUrl ||
276
+ process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL ||
277
+ process.env.WEBEX_TEST_USERS_CONVERSATION_SERVICE_URL;
265
278
 
266
279
  if (!cigServiceUrl) {
267
- throw new Error('options.cigServiceUrl or process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL must be defined');
280
+ throw new Error(
281
+ 'options.cigServiceUrl or process.env.WEBEX_TEST_USERS_CI_GATEWAY_SERVICE_URL must be defined'
282
+ );
268
283
  }
269
284
 
270
285
  if (!options.id) {
@@ -272,12 +287,11 @@ export function removeTestUser(options = {}) {
272
287
  }
273
288
 
274
289
  if (!options.token) {
275
- return loginTestUser(options)
276
- .then((token) => {
277
- options.token = token;
290
+ return loginTestUser(options).then((token) => {
291
+ options.token = token;
278
292
 
279
- return removeTestUser(options);
280
- });
293
+ return removeTestUser(options);
294
+ });
281
295
  }
282
296
 
283
297
  assert(options.token.authorization, 'options.token.authorization must be defined');
@@ -286,20 +300,20 @@ export function removeTestUser(options = {}) {
286
300
  method: 'POST',
287
301
  json: true,
288
302
  headers: {
289
- authorization: options.token.authorization
303
+ authorization: options.token.authorization,
290
304
  },
291
305
  body: {
292
306
  /* eslint-disable camelcase */
293
307
  user_id: options.id,
294
308
  refresh_token: options.token.refresh_token,
295
- user_type: options.userType || 'PERSON'
309
+ user_type: options.userType || 'PERSON',
296
310
  /* eslint-enable camelcase */
297
311
  },
298
- uri: `${cigServiceUrl}${BASE_PATH}/delete`
312
+ uri: `${cigServiceUrl}${BASE_PATH}/delete`,
299
313
  });
300
314
  }
301
315
 
302
316
  export {
303
317
  default as createWhistlerTestUser,
304
- removeTestUser as removeWhistlerTestUser
318
+ removeTestUser as removeWhistlerTestUser,
305
319
  } from './whistler';
package/src/whistler.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import btoa from 'btoa';
2
2
  import {request} from '@webex/http-core';
3
+ import randomName from 'node-random-name';
4
+ import uuid from 'uuid';
3
5
 
4
6
  /**
5
7
  * Fetches credentials/access_token to talk to the whistler endpoint
@@ -20,47 +22,50 @@ const getClientCredentials = ({
20
22
  orgId,
21
23
  idbrokerUrl,
22
24
  machineAccount,
23
- machinePassword
24
- }) => request({
25
- method: 'POST',
26
- uri: `${idbrokerUrl}/idb/token/${orgId}/v2/actions/GetBearerToken/invoke`,
27
- json: true,
28
- body: {
29
- uid: machineAccount,
30
- password: machinePassword
31
- }
32
- })
33
- .then((res) => request({
25
+ machinePassword,
26
+ }) =>
27
+ request({
34
28
  method: 'POST',
35
- uri: `${idbrokerUrl}/idb/oauth2/v1/access_token`,
29
+ uri: `${idbrokerUrl}/idb/token/${orgId}/v2/actions/GetBearerToken/invoke`,
36
30
  json: true,
37
- form: {
38
- assertion: res.body.BearerToken,
39
- grant_type: 'urn:ietf:params:oauth:grant-type:saml2-bearer',
40
- scope: 'webexsquare:get_conversation webexsquare:admin',
41
- self_contained_token: true,
42
- client_id: clientId,
43
- client_secret: clientSecret
31
+ body: {
32
+ uid: machineAccount,
33
+ password: machinePassword,
44
34
  },
45
- headers: {
46
- // Note: we can't request's auth hash here because this endpoint expects
47
- // us to send the auth header *without including "Basic "* before the
48
- // token string
49
- // authorization: `Basic + ${btoa(`${clientId}:${clientSecret}`)}`
50
- authorization: btoa(`${clientId}:${clientSecret}`)
51
- }
52
- }))
53
- .then((res) => `${res.body.token_type} ${res.body.access_token}`);
35
+ })
36
+ .then((res) =>
37
+ request({
38
+ method: 'POST',
39
+ uri: `${idbrokerUrl}/idb/oauth2/v1/access_token`,
40
+ json: true,
41
+ form: {
42
+ assertion: res.body.BearerToken,
43
+ grant_type: 'urn:ietf:params:oauth:grant-type:saml2-bearer',
44
+ scope: 'webexsquare:get_conversation webexsquare:admin',
45
+ self_contained_token: true,
46
+ client_id: clientId,
47
+ client_secret: clientSecret,
48
+ },
49
+ headers: {
50
+ // Note: we can't request's auth hash here because this endpoint expects
51
+ // us to send the auth header *without including "Basic "* before the
52
+ // token string
53
+ // authorization: `Basic + ${btoa(`${clientId}:${clientSecret}`)}`
54
+ authorization: btoa(`${clientId}:${clientSecret}`),
55
+ },
56
+ })
57
+ )
58
+ .then((res) => `${res.body.token_type} ${res.body.access_token}`);
54
59
 
55
60
  /**
56
- * @typedef {Object} TestUserObject
57
- * @property {string} password
58
- * @property {string} emailAddress
59
- * @property {string} displayName
60
- * @property {string} token
61
- * @property {string} reservationUrl
62
- * @property {object} responseMetaData - whistler given properties
63
- */
61
+ * @typedef {Object} TestUserObject
62
+ * @property {string} password
63
+ * @property {string} emailAddress
64
+ * @property {string} displayName
65
+ * @property {string} token
66
+ * @property {string} reservationUrl
67
+ * @property {object} responseMetaData - whistler given properties
68
+ */
64
69
 
65
70
  /**
66
71
  * @typedef {Object} CreateUserOptions
@@ -82,8 +87,10 @@ const getClientCredentials = ({
82
87
  export default function createTestUser(options = {}) {
83
88
  const clientId = options.clientId || process.env.WEBEX_CLIENT_ID;
84
89
  const clientSecret = options.clientSecret || process.env.WEBEX_CLIENT_SECRET;
85
- const machineAccount = options.machineAccount || process.env.WHISTLER_MACHINE_ACCOUNT;
86
- const machinePassword = options.machinePassword || process.env.WHISTLER_MACHINE_PASSWORD;
90
+ const machineAccount =
91
+ options.machineAccount || process.env.WHISTLER_MACHINE_ACCOUNT || randomName();
92
+ const machinePassword =
93
+ options.machinePassword || process.env.WHISTLER_MACHINE_PASSWORD || `${uuid.v4()}zAY1*`;
87
94
  const idbrokerUrl = options.idbrokerUrl || process.env.IDBROKER_BASE_URL;
88
95
  const orgId = options.orgId || process.env.WHISTLER_TEST_ORG_ID;
89
96
  const whistlerServiceUrl = options.whistlerServiceUrl || process.env.WHISTLER_API_SERVICE_URL;
@@ -98,11 +105,15 @@ export default function createTestUser(options = {}) {
98
105
  }
99
106
 
100
107
  if (!machineAccount) {
101
- throw new Error('options.machineAccount or process.env.WHISTLER_MACHINE_ACCOUNT must be defined');
108
+ throw new Error(
109
+ 'options.machineAccount or process.env.WHISTLER_MACHINE_ACCOUNT must be defined'
110
+ );
102
111
  }
103
112
 
104
113
  if (!machinePassword) {
105
- throw new Error('options.machinePassword or process.env.WHISTLER_MACHINE_PASSWORD must be defined');
114
+ throw new Error(
115
+ 'options.machinePassword or process.env.WHISTLER_MACHINE_PASSWORD must be defined'
116
+ );
106
117
  }
107
118
  if (!idbrokerUrl) {
108
119
  throw new Error('options.idbrokerUrl or process.env.IDBROKER_BASE_URL must be defined');
@@ -113,7 +124,9 @@ export default function createTestUser(options = {}) {
113
124
  }
114
125
 
115
126
  if (!whistlerServiceUrl) {
116
- throw new Error('options.whistlerServiceUrl or process.env.WHISTLER_API_SERVICE_URL must be defined');
127
+ throw new Error(
128
+ 'options.whistlerServiceUrl or process.env.WHISTLER_API_SERVICE_URL must be defined'
129
+ );
117
130
  }
118
131
 
119
132
  // For reservation groups and user scopes
@@ -124,27 +137,30 @@ export default function createTestUser(options = {}) {
124
137
  machineAccount,
125
138
  machinePassword,
126
139
  idbrokerUrl,
127
- orgId
140
+ orgId,
128
141
  })
129
- .then((authorization) => request({
130
- method: 'GET',
131
- uri: `${whistlerServiceUrl}/reservations/testUser`,
132
- qs: {
133
- reservationGroup,
134
- userScopes,
135
- isAccessTokenRequired: true
136
- },
137
- headers: {
138
- authorization
139
- }
140
- }))
141
- .then((res) => Object.assign({
142
+ .then((authorization) =>
143
+ request({
144
+ method: 'GET',
145
+ uri: `${whistlerServiceUrl}/reservations/testUser`,
146
+ qs: {
147
+ reservationGroup,
148
+ userScopes,
149
+ isAccessTokenRequired: true,
150
+ },
151
+ headers: {
152
+ authorization,
153
+ },
154
+ })
155
+ )
156
+ .then((res) => ({
142
157
  password: res.body.responseMetaData.ciPassword,
143
158
  emailAddress: res.body.responseMetaData.name,
144
159
  displayName: res.body.responseMetaData.webExUserName,
145
160
  token: res.body.responseMetaData.ciAccessToken,
146
- reservationUrl: res.body.reservationUrl
147
- }, res.body.responseMetaData));
161
+ reservationUrl: res.body.reservationUrl,
162
+ ...res.body.responseMetaData,
163
+ }));
148
164
  }
149
165
 
150
166
  /**
@@ -156,8 +172,8 @@ export function removeTestUser(options = {}) {
156
172
  return request({
157
173
  method: 'DELETE',
158
174
  headers: {
159
- authorization: `Bearer ${options.token}`
175
+ authorization: `Bearer ${options.token}`,
160
176
  },
161
- uri: options.reservationUrl
177
+ uri: options.reservationUrl,
162
178
  });
163
179
  }
@@ -1,4 +1,3 @@
1
-
2
1
  import chai from 'chai';
3
2
  import chaiAsPromised from 'chai-as-promised';
4
3
  import uuid from 'uuid';
@@ -15,7 +14,10 @@ assert.hasAccessToken = (user) => {
15
14
  assert.isDefined(user.token.expires_in, 'user.token.expires_in is defined');
16
15
  assert.isDefined(user.token.token_type, 'user.token.token_type is defined');
17
16
  assert.isDefined(user.token.refresh_token, 'user.token.refresh_token is defined');
18
- assert.isDefined(user.token.refresh_token_expires_in, 'user.token.refresh_token_expires_in is defined');
17
+ assert.isDefined(
18
+ user.token.refresh_token_expires_in,
19
+ 'user.token.refresh_token_expires_in is defined'
20
+ );
19
21
  assert.isDefined(user.token.expires, 'user.token.expires is defined');
20
22
  assert.isDefined(user.token.refresh_token_expires, 'user.token.refresh_token_expires is defined');
21
23
  };
@@ -28,7 +30,10 @@ assert.hasAuthorizationCode = (user) => {
28
30
  assert.hasRefreshToken = (user) => {
29
31
  assert.isDefined(user.token, 'user.token is defined');
30
32
  assert.isDefined(user.token.refresh_token, 'user.token.refresh_token is defined');
31
- assert.isDefined(user.token.refresh_token_expires_in, 'user.token.refresh_token_expires_in is defined');
33
+ assert.isDefined(
34
+ user.token.refresh_token_expires_in,
35
+ 'user.token.refresh_token_expires_in is defined'
36
+ );
32
37
  assert.isDefined(user.token.refresh_token_expires, 'user.token.refresh_token_expires is defined');
33
38
  };
34
39
 
@@ -50,7 +55,7 @@ nodeOnly(describe)('test-users', () => {
50
55
  return {
51
56
  id: user.id,
52
57
  email: user.emailAddress || user.email,
53
- password: user.password
58
+ password: user.password,
54
59
  };
55
60
  }
56
61
 
@@ -59,51 +64,53 @@ nodeOnly(describe)('test-users', () => {
59
64
 
60
65
  return request({
61
66
  method: 'POST',
62
- uri: `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/oauth2/v1/access_token`,
67
+ uri: `${
68
+ process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'
69
+ }/idb/oauth2/v1/access_token`,
63
70
  form: {
64
71
  /* eslint-disable camelcase */
65
72
  grant_type: 'refresh_token',
66
73
  redirect_uri: process.env.WEBEX_REDIRECT_URI,
67
- refresh_token: user.token.refresh_token
74
+ refresh_token: user.token.refresh_token,
68
75
  /* eslint-enable */
69
76
  },
70
77
  auth: {
71
78
  user: process.env.WEBEX_CLIENT_ID,
72
- pass: process.env.WEBEX_CLIENT_SECRET
73
- }
79
+ pass: process.env.WEBEX_CLIENT_SECRET,
80
+ },
74
81
  });
75
82
  }
76
83
 
77
84
  describe('createTestUser()', () => {
78
- it('creates a test user', () => createTestUser()
79
- .then((u) => {
85
+ it('creates a test user', () =>
86
+ createTestUser().then((u) => {
80
87
  assert.isTestUser(u);
81
88
  assert.hasAccessToken(u);
82
89
  }));
83
90
 
84
- it('creates a test user with a custom email address', () => createTestUser({emailAddress})
85
- .then((u) => {
91
+ it('creates a test user with a custom email address', () =>
92
+ createTestUser({emailAddress}).then((u) => {
86
93
  assert.isTestUser(u);
87
94
  assert.hasAccessToken(u);
88
95
  assert.equal(u.email, emailAddress);
89
96
  }));
90
97
 
91
- it('creates a test user with a custom password', () => createTestUser({password})
92
- .then((u) => {
98
+ it('creates a test user with a custom password', () =>
99
+ createTestUser({password}).then((u) => {
93
100
  assert.isTestUser(u);
94
101
  assert.hasAccessToken(u);
95
102
  assert.equal(u.password, password);
96
103
  }));
97
104
 
98
- it('creates a test user with a custom display name', () => createTestUser({displayName})
99
- .then((u) => {
105
+ it('creates a test user with a custom display name', () =>
106
+ createTestUser({displayName}).then((u) => {
100
107
  assert.isTestUser(u);
101
108
  assert.hasAccessToken(u);
102
109
  assert.equal(u.displayName, displayName);
103
110
  }));
104
111
 
105
- it('creates a test user with a usable refresh token', () => createTestUser({})
106
- .then(async (u) => {
112
+ it('creates a test user with a usable refresh token', () =>
113
+ createTestUser({}).then(async (u) => {
107
114
  assert.isTestUser(u);
108
115
  assert.hasAccessToken(u);
109
116
 
@@ -112,8 +119,8 @@ nodeOnly(describe)('test-users', () => {
112
119
  assert.equal(res.statusCode, 200);
113
120
  }));
114
121
 
115
- it('creates a test user but returns an authorization code', () => createTestUser({authCodeOnly: true})
116
- .then((u) => {
122
+ it('creates a test user but returns an authorization code', () =>
123
+ createTestUser({authCodeOnly: true}).then((u) => {
117
124
  assert.isTestUser(u);
118
125
  assert.hasAuthorizationCode(u);
119
126
  }));
@@ -121,70 +128,75 @@ nodeOnly(describe)('test-users', () => {
121
128
  it('creates a test user in another org', async () => {
122
129
  const u = await createTestUser({
123
130
  orgId: 'kmsFederation',
124
- entitlements: ['webExSquared']
131
+ entitlements: ['webExSquared'],
125
132
  });
126
133
 
127
134
  assert.isTestUser(u);
128
135
  assert.hasAccessToken(u);
129
136
  });
130
137
 
131
- it('creates a machine type test user', () => createTestUser({
132
- machineType: 'LYRA_SPACE',
133
- type: 'MACHINE'
134
- }).then((u) => {
135
- assert.isTestUser(u);
136
- assert.equal(u.type, 'MACHINE', 'type is MACHINE');
137
- assert.equal(u.machineType, 'LYRA_SPACE', 'machineType is LYRA_SPACE');
138
- }));
138
+ it('creates a machine type test user', () =>
139
+ createTestUser({
140
+ machineType: 'LYRA_SPACE',
141
+ type: 'MACHINE',
142
+ }).then((u) => {
143
+ assert.isTestUser(u);
144
+ assert.equal(u.type, 'MACHINE', 'type is MACHINE');
145
+ assert.equal(u.machineType, 'LYRA_SPACE', 'machineType is LYRA_SPACE');
146
+ }));
139
147
  });
140
148
 
141
149
  describe('loginTestUser()', () => {
142
- it('retrieves credentials for the specified user', () => createTestUser()
143
- .then(prune)
144
- .then(loginTestUser)
145
- .then((token) => {
146
- assert.hasAccessToken({token});
147
- }));
148
-
149
- it('retrieves credentials with a useable refresh token', () => createTestUser()
150
- .then(prune)
151
- .then(loginTestUser)
152
- .then(async (token) => {
153
- assert.hasAccessToken({token});
154
- assert.hasRefreshToken({token});
155
-
156
- const res = await refresh({token});
157
-
158
- assert.equal(res.statusCode, 200);
159
- }));
150
+ it('retrieves credentials for the specified user', () =>
151
+ createTestUser()
152
+ .then(prune)
153
+ .then(loginTestUser)
154
+ .then((token) => {
155
+ assert.hasAccessToken({token});
156
+ }));
157
+
158
+ it('retrieves credentials with a useable refresh token', () =>
159
+ createTestUser()
160
+ .then(prune)
161
+ .then(loginTestUser)
162
+ .then(async (token) => {
163
+ assert.hasAccessToken({token});
164
+ assert.hasRefreshToken({token});
165
+
166
+ const res = await refresh({token});
167
+
168
+ assert.equal(res.statusCode, 200);
169
+ }));
160
170
  });
161
171
 
162
172
  describe('removeTestUser()', () => {
163
- it('removes the specified test user', () => createTestUser()
164
- .then(async (u) => {
173
+ it('removes the specified test user', () =>
174
+ createTestUser().then(async (u) => {
165
175
  const res = await removeTestUser(u);
166
176
 
167
177
  assert.equal(res.statusCode, 204);
168
178
  }));
169
179
 
170
- it('removes a test user if no access token is available', () => createTestUser()
171
- .then(prune)
172
- .then(async (u) => {
173
- const res = await removeTestUser(u);
180
+ it('removes a test user if no access token is available', () =>
181
+ createTestUser()
182
+ .then(prune)
183
+ .then(async (u) => {
184
+ const res = await removeTestUser(u);
174
185
 
175
- assert.equal(res.statusCode, 204);
176
- }));
186
+ assert.equal(res.statusCode, 204);
187
+ }));
177
188
 
178
- it('removes a test user with an access token set to undefined', () => createTestUser()
179
- .then((user) => {
180
- user.token = undefined;
189
+ it('removes a test user with an access token set to undefined', () =>
190
+ createTestUser()
191
+ .then((user) => {
192
+ user.token = undefined;
181
193
 
182
- return user;
183
- })
184
- .then(async (u) => {
185
- const res = await removeTestUser(u);
194
+ return user;
195
+ })
196
+ .then(async (u) => {
197
+ const res = await removeTestUser(u);
186
198
 
187
- assert.equal(res.statusCode, 204);
188
- }));
199
+ assert.equal(res.statusCode, 204);
200
+ }));
189
201
  });
190
202
  });