@webex/test-helper-test-users 3.0.0-beta.2 → 3.0.0-beta.20
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/README.md +1 -1
- package/dist/index.js +36 -64
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.js +38 -35
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,38 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
6
|
-
|
|
7
5
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
8
|
-
|
|
9
6
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
10
|
-
|
|
11
7
|
var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
|
|
12
|
-
|
|
13
8
|
/* eslint-disable no-underscore-dangle */
|
|
14
|
-
|
|
15
9
|
/*!
|
|
16
10
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
17
11
|
*/
|
|
18
12
|
|
|
19
13
|
/* eslint-env mocha */
|
|
20
|
-
|
|
21
14
|
/* eslint camelcase: [0] */
|
|
22
|
-
var assert = require('assert');
|
|
23
15
|
|
|
16
|
+
var assert = require('assert');
|
|
24
17
|
var _ = require('lodash');
|
|
25
|
-
|
|
26
18
|
var retry = require('@webex/test-helper-retry');
|
|
27
|
-
|
|
28
19
|
var _require = require('@webex/test-users'),
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
createTestUser = _require.createTestUser,
|
|
21
|
+
removeTestUser = _require.removeTestUser,
|
|
22
|
+
createWhistlerTestUser = _require.createWhistlerTestUser,
|
|
23
|
+
removeWhistlerTestUser = _require.removeWhistlerTestUser;
|
|
34
24
|
var allUsers = [];
|
|
35
|
-
|
|
36
25
|
if (after) {
|
|
37
26
|
after(function () {
|
|
38
27
|
/* eslint no-invalid-this: [0] */
|
|
@@ -43,6 +32,7 @@ if (after) {
|
|
|
43
32
|
return _remove(allUsers);
|
|
44
33
|
});
|
|
45
34
|
}
|
|
35
|
+
|
|
46
36
|
/**
|
|
47
37
|
* Helper
|
|
48
38
|
* @param {Object} options
|
|
@@ -53,35 +43,28 @@ if (after) {
|
|
|
53
43
|
* @private
|
|
54
44
|
* @returns {Promise<Array<User>>}
|
|
55
45
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
46
|
function _create(options) {
|
|
59
47
|
options = options || {};
|
|
60
48
|
var _options = options,
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
count = _options.count;
|
|
63
50
|
if (!count) {
|
|
64
51
|
count = 1;
|
|
65
52
|
}
|
|
66
|
-
|
|
67
53
|
var promises = [];
|
|
68
|
-
|
|
69
54
|
for (var i = 0; i < count; i += 1) {
|
|
70
55
|
promises.push(retry(makeUser));
|
|
71
56
|
}
|
|
72
|
-
|
|
73
57
|
return _promise.default.all(promises);
|
|
58
|
+
|
|
74
59
|
/**
|
|
75
60
|
* Helper
|
|
76
61
|
* @private
|
|
77
62
|
* @returns {Promise<User>}
|
|
78
63
|
*/
|
|
79
|
-
|
|
80
64
|
function makeUser() {
|
|
81
65
|
var config = _.defaults({
|
|
82
66
|
scopes: process.env.WEBEX_SCOPE
|
|
83
67
|
}, options.config);
|
|
84
|
-
|
|
85
68
|
return options.whistler ? createWhistlerTestUser(config).then(function (user) {
|
|
86
69
|
allUsers.push(user);
|
|
87
70
|
return user;
|
|
@@ -91,63 +74,52 @@ function _create(options) {
|
|
|
91
74
|
});
|
|
92
75
|
}
|
|
93
76
|
}
|
|
77
|
+
|
|
94
78
|
/**
|
|
95
79
|
* Helper
|
|
96
80
|
* @param {Array<User>} users
|
|
97
81
|
* @returns {Promise}
|
|
98
82
|
*/
|
|
99
|
-
|
|
100
|
-
|
|
101
83
|
function _remove(users) {
|
|
102
84
|
return _promise.default.all(users.map( /*#__PURE__*/function () {
|
|
103
85
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(user) {
|
|
104
86
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
105
|
-
while (1) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
_context.next = 5;
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
_context.next = 3;
|
|
114
|
-
return removeWhistlerTestUser(user).catch(function (reason) {
|
|
115
|
-
console.warn('failed to delete test user', reason);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
case 3:
|
|
119
|
-
_context.next = 8;
|
|
87
|
+
while (1) switch (_context.prev = _context.next) {
|
|
88
|
+
case 0:
|
|
89
|
+
if (!user.reservationUrl) {
|
|
90
|
+
_context.next = 5;
|
|
120
91
|
break;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
92
|
+
}
|
|
93
|
+
_context.next = 3;
|
|
94
|
+
return removeWhistlerTestUser(user).catch(function (reason) {
|
|
95
|
+
console.warn('failed to delete test user', reason);
|
|
96
|
+
});
|
|
97
|
+
case 3:
|
|
98
|
+
_context.next = 8;
|
|
99
|
+
break;
|
|
100
|
+
case 5:
|
|
101
|
+
if (user.token && !user.token.authorization) {
|
|
102
|
+
(0, _deleteProperty.default)(user, 'token');
|
|
103
|
+
}
|
|
104
|
+
_context.next = 8;
|
|
105
|
+
return removeTestUser(user).catch(function (reason) {
|
|
106
|
+
console.warn('failed to delete test user', reason);
|
|
107
|
+
});
|
|
108
|
+
case 8:
|
|
109
|
+
return _context.abrupt("return", new _promise.default(function (resolve) {
|
|
110
|
+
setTimeout(resolve, 500);
|
|
111
|
+
}));
|
|
112
|
+
case 9:
|
|
113
|
+
case "end":
|
|
114
|
+
return _context.stop();
|
|
141
115
|
}
|
|
142
116
|
}, _callee);
|
|
143
117
|
}));
|
|
144
|
-
|
|
145
118
|
return function (_x) {
|
|
146
119
|
return _ref.apply(this, arguments);
|
|
147
120
|
};
|
|
148
121
|
}()));
|
|
149
122
|
}
|
|
150
|
-
|
|
151
123
|
module.exports = {
|
|
152
124
|
create: function create(options) {
|
|
153
125
|
assert(process.env.WEBEX_CLIENT_ID, 'WEBEX_CLIENT_ID must be defined');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["assert","require","_","retry","createTestUser","removeTestUser","createWhistlerTestUser","removeWhistlerTestUser","allUsers","after","timeout","forEach","user","webex","internal","mercury","disconnect","_remove","_create","options","count","promises","i","push","makeUser","all","config","defaults","scopes","process","env","WEBEX_SCOPE","whistler","then","users","map","reservationUrl","catch","reason","console","warn","token","authorization","resolve","setTimeout","module","exports","create","WEBEX_CLIENT_ID","WEBEX_CLIENT_SECRET","remove"],"sources":["index.js"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-env mocha */\n/* eslint camelcase: [0] */\n\nconst assert = require('assert');\n\nconst _ = require('lodash');\nconst retry = require('@webex/test-helper-retry');\nconst {\n createTestUser,\n removeTestUser,\n createWhistlerTestUser,\n removeWhistlerTestUser
|
|
1
|
+
{"version":3,"names":["assert","require","_","retry","createTestUser","removeTestUser","createWhistlerTestUser","removeWhistlerTestUser","allUsers","after","timeout","forEach","user","webex","internal","mercury","disconnect","_remove","_create","options","count","promises","i","push","makeUser","all","config","defaults","scopes","process","env","WEBEX_SCOPE","whistler","then","users","map","reservationUrl","catch","reason","console","warn","token","authorization","resolve","setTimeout","module","exports","create","WEBEX_CLIENT_ID","WEBEX_CLIENT_SECRET","remove"],"sources":["index.js"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-env mocha */\n/* eslint camelcase: [0] */\n\nconst assert = require('assert');\n\nconst _ = require('lodash');\nconst retry = require('@webex/test-helper-retry');\nconst {\n createTestUser,\n removeTestUser,\n createWhistlerTestUser,\n removeWhistlerTestUser,\n} = require('@webex/test-users');\n\nconst allUsers = [];\n\nif (after) {\n after(function () {\n /* eslint no-invalid-this: [0] */\n this.timeout(120000);\n allUsers.forEach(\n (user) =>\n user.webex && user.webex.internal.mercury && user.webex.internal.mercury.disconnect()\n );\n\n return _remove(allUsers);\n });\n}\n\n/**\n * Helper\n * @param {Object} options\n * @param {number} options.count amount of users to create\n * @param {boolean} options.whistler use Whistler Service to generate test users\n * @param {Object} options.config configuration to pass to test-users library\n * see test-users package for full options\n * @private\n * @returns {Promise<Array<User>>}\n */\nfunction _create(options) {\n options = options || {};\n let {count} = options;\n\n if (!count) {\n count = 1;\n }\n\n const promises = [];\n\n for (let i = 0; i < count; i += 1) {\n promises.push(retry(makeUser));\n }\n\n return Promise.all(promises);\n\n /**\n * Helper\n * @private\n * @returns {Promise<User>}\n */\n function makeUser() {\n const config = _.defaults(\n {\n scopes: process.env.WEBEX_SCOPE,\n },\n options.config\n );\n\n return options.whistler\n ? createWhistlerTestUser(config).then((user) => {\n allUsers.push(user);\n\n return user;\n })\n : createTestUser(config).then((user) => {\n allUsers.push(user);\n\n return user;\n });\n }\n}\n\n/**\n * Helper\n * @param {Array<User>} users\n * @returns {Promise}\n */\nfunction _remove(users) {\n return Promise.all(\n users.map(async (user) => {\n // Check if user was created using whistler\n if (user.reservationUrl) {\n await removeWhistlerTestUser(user).catch((reason) => {\n console.warn('failed to delete test user', reason);\n });\n } else {\n if (user.token && !user.token.authorization) {\n Reflect.deleteProperty(user, 'token');\n }\n\n await removeTestUser(user).catch((reason) => {\n console.warn('failed to delete test user', reason);\n });\n }\n\n // Edge times out waiting for the delete calls to complete (and test user\n // deletion isn't really something we need to wait for anyway) so we'll just\n // give enough time for the requests to go out, then allow the browser to\n // close, even if the requests haven't returned.\n return new Promise((resolve) => {\n setTimeout(resolve, 500);\n });\n })\n );\n}\n\nmodule.exports = {\n create: (options) => {\n assert(process.env.WEBEX_CLIENT_ID, 'WEBEX_CLIENT_ID must be defined');\n assert(process.env.WEBEX_CLIENT_SECRET, 'WEBEX_CLIENT_SECRET must be defined');\n\n return _create(options);\n },\n remove: _remove,\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/test-helper-test-users",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.20",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
]
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@webex/test-helper-retry": "3.0.0-beta.
|
|
25
|
-
"@webex/test-users": "3.0.0-beta.
|
|
24
|
+
"@webex/test-helper-retry": "3.0.0-beta.20",
|
|
25
|
+
"@webex/test-users": "3.0.0-beta.20",
|
|
26
26
|
"lodash": "^4.17.21"
|
|
27
27
|
}
|
|
28
28
|
}
|
package/src/index.js
CHANGED
|
@@ -14,7 +14,7 @@ const {
|
|
|
14
14
|
createTestUser,
|
|
15
15
|
removeTestUser,
|
|
16
16
|
createWhistlerTestUser,
|
|
17
|
-
removeWhistlerTestUser
|
|
17
|
+
removeWhistlerTestUser,
|
|
18
18
|
} = require('@webex/test-users');
|
|
19
19
|
|
|
20
20
|
const allUsers = [];
|
|
@@ -23,7 +23,10 @@ if (after) {
|
|
|
23
23
|
after(function () {
|
|
24
24
|
/* eslint no-invalid-this: [0] */
|
|
25
25
|
this.timeout(120000);
|
|
26
|
-
allUsers.forEach(
|
|
26
|
+
allUsers.forEach(
|
|
27
|
+
(user) =>
|
|
28
|
+
user.webex && user.webex.internal.mercury && user.webex.internal.mercury.disconnect()
|
|
29
|
+
);
|
|
27
30
|
|
|
28
31
|
return _remove(allUsers);
|
|
29
32
|
});
|
|
@@ -61,19 +64,20 @@ function _create(options) {
|
|
|
61
64
|
* @returns {Promise<User>}
|
|
62
65
|
*/
|
|
63
66
|
function makeUser() {
|
|
64
|
-
const config = _.defaults(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
const config = _.defaults(
|
|
68
|
+
{
|
|
69
|
+
scopes: process.env.WEBEX_SCOPE,
|
|
70
|
+
},
|
|
71
|
+
options.config
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
return options.whistler
|
|
75
|
+
? createWhistlerTestUser(config).then((user) => {
|
|
71
76
|
allUsers.push(user);
|
|
72
77
|
|
|
73
78
|
return user;
|
|
74
|
-
})
|
|
75
|
-
createTestUser(config)
|
|
76
|
-
.then((user) => {
|
|
79
|
+
})
|
|
80
|
+
: createTestUser(config).then((user) => {
|
|
77
81
|
allUsers.push(user);
|
|
78
82
|
|
|
79
83
|
return user;
|
|
@@ -87,33 +91,32 @@ function _create(options) {
|
|
|
87
91
|
* @returns {Promise}
|
|
88
92
|
*/
|
|
89
93
|
function _remove(users) {
|
|
90
|
-
return Promise.all(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
.catch((reason) => {
|
|
94
|
+
return Promise.all(
|
|
95
|
+
users.map(async (user) => {
|
|
96
|
+
// Check if user was created using whistler
|
|
97
|
+
if (user.reservationUrl) {
|
|
98
|
+
await removeWhistlerTestUser(user).catch((reason) => {
|
|
95
99
|
console.warn('failed to delete test user', reason);
|
|
96
100
|
});
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
101
|
+
} else {
|
|
102
|
+
if (user.token && !user.token.authorization) {
|
|
103
|
+
Reflect.deleteProperty(user, 'token');
|
|
104
|
+
}
|
|
102
105
|
|
|
103
|
-
|
|
104
|
-
.catch((reason) => {
|
|
106
|
+
await removeTestUser(user).catch((reason) => {
|
|
105
107
|
console.warn('failed to delete test user', reason);
|
|
106
108
|
});
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Edge times out waiting for the delete calls to complete (and test user
|
|
112
|
+
// deletion isn't really something we need to wait for anyway) so we'll just
|
|
113
|
+
// give enough time for the requests to go out, then allow the browser to
|
|
114
|
+
// close, even if the requests haven't returned.
|
|
115
|
+
return new Promise((resolve) => {
|
|
116
|
+
setTimeout(resolve, 500);
|
|
117
|
+
});
|
|
118
|
+
})
|
|
119
|
+
);
|
|
117
120
|
}
|
|
118
121
|
|
|
119
122
|
module.exports = {
|
|
@@ -123,5 +126,5 @@ module.exports = {
|
|
|
123
126
|
|
|
124
127
|
return _create(options);
|
|
125
128
|
},
|
|
126
|
-
remove: _remove
|
|
129
|
+
remove: _remove,
|
|
127
130
|
};
|