@webex/plugin-team-memberships 2.59.2 → 2.59.3-next.1
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/.eslintrc.js +6 -6
- package/README.md +53 -53
- package/babel.config.js +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/team-memberships.js +142 -142
- package/dist/team-memberships.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +17 -16
- package/process +1 -1
- package/src/index.js +11 -11
- package/src/team-memberships.js +211 -211
- package/test/integration/spec/team-memberships.js +240 -240
|
@@ -1,240 +1,240 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import '@webex/internal-plugin-device';
|
|
6
|
-
import '@webex/plugin-logger';
|
|
7
|
-
import '@webex/plugin-rooms';
|
|
8
|
-
import '@webex/plugin-team-memberships';
|
|
9
|
-
import '@webex/plugin-teams';
|
|
10
|
-
import WebexCore from '@webex/webex-core';
|
|
11
|
-
import {assert} from '@webex/test-helper-chai';
|
|
12
|
-
import sinon from 'sinon';
|
|
13
|
-
import testUsers from '@webex/test-helper-test-users';
|
|
14
|
-
|
|
15
|
-
describe('plugin-team-memberships', function () {
|
|
16
|
-
this.timeout(60000);
|
|
17
|
-
|
|
18
|
-
let webex;
|
|
19
|
-
|
|
20
|
-
before(() =>
|
|
21
|
-
testUsers.create({count: 1}).then(([user]) => {
|
|
22
|
-
webex = new WebexCore({credentials: user.token});
|
|
23
|
-
})
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
describe('#teams', () => {
|
|
27
|
-
describe('#memberships', () => {
|
|
28
|
-
let team;
|
|
29
|
-
|
|
30
|
-
const memberships = [];
|
|
31
|
-
|
|
32
|
-
let user1;
|
|
33
|
-
|
|
34
|
-
before(() =>
|
|
35
|
-
testUsers.create({count: 1}).then((users) => {
|
|
36
|
-
user1 = users[0];
|
|
37
|
-
})
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
before(() =>
|
|
41
|
-
webex.teams
|
|
42
|
-
.create({
|
|
43
|
-
name: 'Webex Team Test',
|
|
44
|
-
})
|
|
45
|
-
.then((t) => {
|
|
46
|
-
team = t;
|
|
47
|
-
|
|
48
|
-
return webex.rooms.create({
|
|
49
|
-
title: 'Webex Team Room Test',
|
|
50
|
-
teamId: team.id,
|
|
51
|
-
});
|
|
52
|
-
})
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
afterEach(() =>
|
|
56
|
-
Promise.all(
|
|
57
|
-
memberships.map((membership) =>
|
|
58
|
-
webex.teamMemberships.remove(membership).catch((reason) => {
|
|
59
|
-
console.error('Failed to delete membership', reason);
|
|
60
|
-
})
|
|
61
|
-
)
|
|
62
|
-
).then(() => {
|
|
63
|
-
while (memberships.length) {
|
|
64
|
-
memberships.pop();
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
describe('#create()', () => {
|
|
70
|
-
it('adds a person to a team by user id', () =>
|
|
71
|
-
webex.teamMemberships
|
|
72
|
-
.create({
|
|
73
|
-
personId: user1.id,
|
|
74
|
-
teamId: team.id,
|
|
75
|
-
})
|
|
76
|
-
.then((membership) => {
|
|
77
|
-
memberships.push(membership);
|
|
78
|
-
assert.isTeamMembership(membership);
|
|
79
|
-
assert.equal(membership.teamId, team.id);
|
|
80
|
-
}));
|
|
81
|
-
|
|
82
|
-
it('adds a person to a team by user email', () =>
|
|
83
|
-
webex.teamMemberships
|
|
84
|
-
.create({
|
|
85
|
-
personEmail: user1.email,
|
|
86
|
-
teamId: team.id,
|
|
87
|
-
})
|
|
88
|
-
.then((membership) => {
|
|
89
|
-
memberships.push(membership);
|
|
90
|
-
assert.isTeamMembership(membership);
|
|
91
|
-
assert.equal(membership.teamId, team.id);
|
|
92
|
-
}));
|
|
93
|
-
|
|
94
|
-
it('adds a person to a team as a moderator', () =>
|
|
95
|
-
webex.teamMemberships
|
|
96
|
-
.create({
|
|
97
|
-
personId: user1.id,
|
|
98
|
-
teamId: team.id,
|
|
99
|
-
isModerator: true,
|
|
100
|
-
})
|
|
101
|
-
.then((membership) => {
|
|
102
|
-
memberships.push(membership);
|
|
103
|
-
assert.isTeamMembership(membership);
|
|
104
|
-
assert.equal(membership.teamId, team.id);
|
|
105
|
-
assert.isTrue(membership.isModerator);
|
|
106
|
-
|
|
107
|
-
// prevent this test from breaking other tests
|
|
108
|
-
membership.isModerator = false;
|
|
109
|
-
|
|
110
|
-
return webex.teamMemberships.update(membership);
|
|
111
|
-
}));
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
describe('#get()', () => {
|
|
115
|
-
it('retrieves a single team membership', () =>
|
|
116
|
-
webex.teamMemberships
|
|
117
|
-
.create({
|
|
118
|
-
personId: user1.id,
|
|
119
|
-
teamId: team.id,
|
|
120
|
-
})
|
|
121
|
-
.then((membership) =>
|
|
122
|
-
webex.teamMemberships.get(membership).then((m) => {
|
|
123
|
-
memberships.push(m);
|
|
124
|
-
assert.isTeamMembership(m);
|
|
125
|
-
// Skipping equality assertiong for now due to create date
|
|
126
|
-
// mismatch
|
|
127
|
-
// assert.deepEqual(m, membership);
|
|
128
|
-
})
|
|
129
|
-
));
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
describe('#list()', () => {
|
|
133
|
-
let user2, user3;
|
|
134
|
-
|
|
135
|
-
before(() =>
|
|
136
|
-
testUsers.create({count: 3}).then((users) => {
|
|
137
|
-
[user2, user3] = users;
|
|
138
|
-
})
|
|
139
|
-
);
|
|
140
|
-
|
|
141
|
-
before(() =>
|
|
142
|
-
Promise.all([
|
|
143
|
-
webex.teamMemberships.create({
|
|
144
|
-
personId: user2.id,
|
|
145
|
-
teamId: team.id,
|
|
146
|
-
}),
|
|
147
|
-
webex.teamMemberships.create({
|
|
148
|
-
personId: user3.id,
|
|
149
|
-
teamId: team.id,
|
|
150
|
-
}),
|
|
151
|
-
])
|
|
152
|
-
);
|
|
153
|
-
|
|
154
|
-
it('retrieves all memberships for a team', () =>
|
|
155
|
-
webex.teamMemberships
|
|
156
|
-
.list({
|
|
157
|
-
teamId: team.id,
|
|
158
|
-
})
|
|
159
|
-
.then((memberships) => {
|
|
160
|
-
assert.isAbove(memberships.length, 2);
|
|
161
|
-
for (const membership of memberships) {
|
|
162
|
-
assert.isTeamMembership(membership);
|
|
163
|
-
assert.equal(membership.teamId, team.id);
|
|
164
|
-
}
|
|
165
|
-
}));
|
|
166
|
-
|
|
167
|
-
it('retrieves a bounded set of memberships for a team', () =>
|
|
168
|
-
webex.teamMemberships
|
|
169
|
-
.list({
|
|
170
|
-
max: 1,
|
|
171
|
-
teamId: team.id,
|
|
172
|
-
})
|
|
173
|
-
.then((memberships) => {
|
|
174
|
-
const spy = sinon.spy();
|
|
175
|
-
|
|
176
|
-
assert.lengthOf(memberships, 1);
|
|
177
|
-
|
|
178
|
-
return (function f(page) {
|
|
179
|
-
for (const membership of page) {
|
|
180
|
-
assert.isTeamMembership(membership);
|
|
181
|
-
spy(membership.id);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
if (page.hasNext()) {
|
|
185
|
-
return page.next().then(f);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return Promise.resolve();
|
|
189
|
-
})(memberships).then(() => {
|
|
190
|
-
assert.calledThrice(spy);
|
|
191
|
-
});
|
|
192
|
-
}));
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
describe('#update()', () => {
|
|
196
|
-
it("updates the membership's moderator status", () =>
|
|
197
|
-
webex.teamMemberships
|
|
198
|
-
.create({
|
|
199
|
-
personId: user1.id,
|
|
200
|
-
teamId: team.id,
|
|
201
|
-
})
|
|
202
|
-
.then((membership) => {
|
|
203
|
-
memberships.push(membership);
|
|
204
|
-
assert.notOk(membership.isModerator);
|
|
205
|
-
membership.isModerator = true;
|
|
206
|
-
|
|
207
|
-
return webex.teamMemberships.update(membership);
|
|
208
|
-
})
|
|
209
|
-
.then((membership) => {
|
|
210
|
-
assert.isTrue(membership.isModerator);
|
|
211
|
-
membership.isModerator = false;
|
|
212
|
-
|
|
213
|
-
return webex.teamMemberships.update(membership);
|
|
214
|
-
})
|
|
215
|
-
.then((membership) => assert.isFalse(membership.isModerator)));
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
describe('#remove()', () => {
|
|
219
|
-
it('deletes a single membership', () =>
|
|
220
|
-
webex.teamMemberships
|
|
221
|
-
.create({
|
|
222
|
-
personId: user1.id,
|
|
223
|
-
teamId: team.id,
|
|
224
|
-
})
|
|
225
|
-
.then((membership) =>
|
|
226
|
-
webex.teamMemberships
|
|
227
|
-
.remove(membership)
|
|
228
|
-
.then((body) => {
|
|
229
|
-
assert.notOk(body);
|
|
230
|
-
|
|
231
|
-
return webex.teamMemberships.list({teamId: team.id});
|
|
232
|
-
})
|
|
233
|
-
.then((memberships) => {
|
|
234
|
-
assert.notInclude(memberships, membership);
|
|
235
|
-
})
|
|
236
|
-
));
|
|
237
|
-
});
|
|
238
|
-
});
|
|
239
|
-
});
|
|
240
|
-
});
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import '@webex/internal-plugin-device';
|
|
6
|
+
import '@webex/plugin-logger';
|
|
7
|
+
import '@webex/plugin-rooms';
|
|
8
|
+
import '@webex/plugin-team-memberships';
|
|
9
|
+
import '@webex/plugin-teams';
|
|
10
|
+
import WebexCore from '@webex/webex-core';
|
|
11
|
+
import {assert} from '@webex/test-helper-chai';
|
|
12
|
+
import sinon from 'sinon';
|
|
13
|
+
import testUsers from '@webex/test-helper-test-users';
|
|
14
|
+
|
|
15
|
+
describe('plugin-team-memberships', function () {
|
|
16
|
+
this.timeout(60000);
|
|
17
|
+
|
|
18
|
+
let webex;
|
|
19
|
+
|
|
20
|
+
before(() =>
|
|
21
|
+
testUsers.create({count: 1}).then(([user]) => {
|
|
22
|
+
webex = new WebexCore({credentials: user.token});
|
|
23
|
+
})
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
describe('#teams', () => {
|
|
27
|
+
describe('#memberships', () => {
|
|
28
|
+
let team;
|
|
29
|
+
|
|
30
|
+
const memberships = [];
|
|
31
|
+
|
|
32
|
+
let user1;
|
|
33
|
+
|
|
34
|
+
before(() =>
|
|
35
|
+
testUsers.create({count: 1}).then((users) => {
|
|
36
|
+
user1 = users[0];
|
|
37
|
+
})
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
before(() =>
|
|
41
|
+
webex.teams
|
|
42
|
+
.create({
|
|
43
|
+
name: 'Webex Team Test',
|
|
44
|
+
})
|
|
45
|
+
.then((t) => {
|
|
46
|
+
team = t;
|
|
47
|
+
|
|
48
|
+
return webex.rooms.create({
|
|
49
|
+
title: 'Webex Team Room Test',
|
|
50
|
+
teamId: team.id,
|
|
51
|
+
});
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
afterEach(() =>
|
|
56
|
+
Promise.all(
|
|
57
|
+
memberships.map((membership) =>
|
|
58
|
+
webex.teamMemberships.remove(membership).catch((reason) => {
|
|
59
|
+
console.error('Failed to delete membership', reason);
|
|
60
|
+
})
|
|
61
|
+
)
|
|
62
|
+
).then(() => {
|
|
63
|
+
while (memberships.length) {
|
|
64
|
+
memberships.pop();
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
describe('#create()', () => {
|
|
70
|
+
it('adds a person to a team by user id', () =>
|
|
71
|
+
webex.teamMemberships
|
|
72
|
+
.create({
|
|
73
|
+
personId: user1.id,
|
|
74
|
+
teamId: team.id,
|
|
75
|
+
})
|
|
76
|
+
.then((membership) => {
|
|
77
|
+
memberships.push(membership);
|
|
78
|
+
assert.isTeamMembership(membership);
|
|
79
|
+
assert.equal(membership.teamId, team.id);
|
|
80
|
+
}));
|
|
81
|
+
|
|
82
|
+
it('adds a person to a team by user email', () =>
|
|
83
|
+
webex.teamMemberships
|
|
84
|
+
.create({
|
|
85
|
+
personEmail: user1.email,
|
|
86
|
+
teamId: team.id,
|
|
87
|
+
})
|
|
88
|
+
.then((membership) => {
|
|
89
|
+
memberships.push(membership);
|
|
90
|
+
assert.isTeamMembership(membership);
|
|
91
|
+
assert.equal(membership.teamId, team.id);
|
|
92
|
+
}));
|
|
93
|
+
|
|
94
|
+
it('adds a person to a team as a moderator', () =>
|
|
95
|
+
webex.teamMemberships
|
|
96
|
+
.create({
|
|
97
|
+
personId: user1.id,
|
|
98
|
+
teamId: team.id,
|
|
99
|
+
isModerator: true,
|
|
100
|
+
})
|
|
101
|
+
.then((membership) => {
|
|
102
|
+
memberships.push(membership);
|
|
103
|
+
assert.isTeamMembership(membership);
|
|
104
|
+
assert.equal(membership.teamId, team.id);
|
|
105
|
+
assert.isTrue(membership.isModerator);
|
|
106
|
+
|
|
107
|
+
// prevent this test from breaking other tests
|
|
108
|
+
membership.isModerator = false;
|
|
109
|
+
|
|
110
|
+
return webex.teamMemberships.update(membership);
|
|
111
|
+
}));
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
describe('#get()', () => {
|
|
115
|
+
it('retrieves a single team membership', () =>
|
|
116
|
+
webex.teamMemberships
|
|
117
|
+
.create({
|
|
118
|
+
personId: user1.id,
|
|
119
|
+
teamId: team.id,
|
|
120
|
+
})
|
|
121
|
+
.then((membership) =>
|
|
122
|
+
webex.teamMemberships.get(membership).then((m) => {
|
|
123
|
+
memberships.push(m);
|
|
124
|
+
assert.isTeamMembership(m);
|
|
125
|
+
// Skipping equality assertiong for now due to create date
|
|
126
|
+
// mismatch
|
|
127
|
+
// assert.deepEqual(m, membership);
|
|
128
|
+
})
|
|
129
|
+
));
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
describe('#list()', () => {
|
|
133
|
+
let user2, user3;
|
|
134
|
+
|
|
135
|
+
before(() =>
|
|
136
|
+
testUsers.create({count: 3}).then((users) => {
|
|
137
|
+
[user2, user3] = users;
|
|
138
|
+
})
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
before(() =>
|
|
142
|
+
Promise.all([
|
|
143
|
+
webex.teamMemberships.create({
|
|
144
|
+
personId: user2.id,
|
|
145
|
+
teamId: team.id,
|
|
146
|
+
}),
|
|
147
|
+
webex.teamMemberships.create({
|
|
148
|
+
personId: user3.id,
|
|
149
|
+
teamId: team.id,
|
|
150
|
+
}),
|
|
151
|
+
])
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
it('retrieves all memberships for a team', () =>
|
|
155
|
+
webex.teamMemberships
|
|
156
|
+
.list({
|
|
157
|
+
teamId: team.id,
|
|
158
|
+
})
|
|
159
|
+
.then((memberships) => {
|
|
160
|
+
assert.isAbove(memberships.length, 2);
|
|
161
|
+
for (const membership of memberships) {
|
|
162
|
+
assert.isTeamMembership(membership);
|
|
163
|
+
assert.equal(membership.teamId, team.id);
|
|
164
|
+
}
|
|
165
|
+
}));
|
|
166
|
+
|
|
167
|
+
it('retrieves a bounded set of memberships for a team', () =>
|
|
168
|
+
webex.teamMemberships
|
|
169
|
+
.list({
|
|
170
|
+
max: 1,
|
|
171
|
+
teamId: team.id,
|
|
172
|
+
})
|
|
173
|
+
.then((memberships) => {
|
|
174
|
+
const spy = sinon.spy();
|
|
175
|
+
|
|
176
|
+
assert.lengthOf(memberships, 1);
|
|
177
|
+
|
|
178
|
+
return (function f(page) {
|
|
179
|
+
for (const membership of page) {
|
|
180
|
+
assert.isTeamMembership(membership);
|
|
181
|
+
spy(membership.id);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (page.hasNext()) {
|
|
185
|
+
return page.next().then(f);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return Promise.resolve();
|
|
189
|
+
})(memberships).then(() => {
|
|
190
|
+
assert.calledThrice(spy);
|
|
191
|
+
});
|
|
192
|
+
}));
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
describe('#update()', () => {
|
|
196
|
+
it("updates the membership's moderator status", () =>
|
|
197
|
+
webex.teamMemberships
|
|
198
|
+
.create({
|
|
199
|
+
personId: user1.id,
|
|
200
|
+
teamId: team.id,
|
|
201
|
+
})
|
|
202
|
+
.then((membership) => {
|
|
203
|
+
memberships.push(membership);
|
|
204
|
+
assert.notOk(membership.isModerator);
|
|
205
|
+
membership.isModerator = true;
|
|
206
|
+
|
|
207
|
+
return webex.teamMemberships.update(membership);
|
|
208
|
+
})
|
|
209
|
+
.then((membership) => {
|
|
210
|
+
assert.isTrue(membership.isModerator);
|
|
211
|
+
membership.isModerator = false;
|
|
212
|
+
|
|
213
|
+
return webex.teamMemberships.update(membership);
|
|
214
|
+
})
|
|
215
|
+
.then((membership) => assert.isFalse(membership.isModerator)));
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
describe('#remove()', () => {
|
|
219
|
+
it('deletes a single membership', () =>
|
|
220
|
+
webex.teamMemberships
|
|
221
|
+
.create({
|
|
222
|
+
personId: user1.id,
|
|
223
|
+
teamId: team.id,
|
|
224
|
+
})
|
|
225
|
+
.then((membership) =>
|
|
226
|
+
webex.teamMemberships
|
|
227
|
+
.remove(membership)
|
|
228
|
+
.then((body) => {
|
|
229
|
+
assert.notOk(body);
|
|
230
|
+
|
|
231
|
+
return webex.teamMemberships.list({teamId: team.id});
|
|
232
|
+
})
|
|
233
|
+
.then((memberships) => {
|
|
234
|
+
assert.notInclude(memberships, membership);
|
|
235
|
+
})
|
|
236
|
+
));
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
});
|