@webex/webex-core 3.0.0-beta.4 → 3.0.0-beta.400

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.
Files changed (188) hide show
  1. package/dist/config.js +1 -11
  2. package/dist/config.js.map +1 -1
  3. package/dist/credentials-config.js +44 -64
  4. package/dist/credentials-config.js.map +1 -1
  5. package/dist/index.js +0 -76
  6. package/dist/index.js.map +1 -1
  7. package/dist/interceptors/auth.js +22 -55
  8. package/dist/interceptors/auth.js.map +1 -1
  9. package/dist/interceptors/default-options.js +0 -20
  10. package/dist/interceptors/default-options.js.map +1 -1
  11. package/dist/interceptors/embargo.js +0 -21
  12. package/dist/interceptors/embargo.js.map +1 -1
  13. package/dist/interceptors/network-timing.js +2 -21
  14. package/dist/interceptors/network-timing.js.map +1 -1
  15. package/dist/interceptors/payload-transformer.js +2 -22
  16. package/dist/interceptors/payload-transformer.js.map +1 -1
  17. package/dist/interceptors/rate-limit.js +25 -57
  18. package/dist/interceptors/rate-limit.js.map +1 -1
  19. package/dist/interceptors/redirect.js +4 -33
  20. package/dist/interceptors/redirect.js.map +1 -1
  21. package/dist/interceptors/request-event.js +3 -30
  22. package/dist/interceptors/request-event.js.map +1 -1
  23. package/dist/interceptors/request-logger.js +1 -30
  24. package/dist/interceptors/request-logger.js.map +1 -1
  25. package/dist/interceptors/request-timing.js +3 -22
  26. package/dist/interceptors/request-timing.js.map +1 -1
  27. package/dist/interceptors/response-logger.js +2 -31
  28. package/dist/interceptors/response-logger.js.map +1 -1
  29. package/dist/interceptors/user-agent.js +2 -29
  30. package/dist/interceptors/user-agent.js.map +1 -1
  31. package/dist/interceptors/webex-tracking-id.js +5 -28
  32. package/dist/interceptors/webex-tracking-id.js.map +1 -1
  33. package/dist/interceptors/webex-user-agent.js +5 -38
  34. package/dist/interceptors/webex-user-agent.js.map +1 -1
  35. package/dist/lib/batcher.js +3 -51
  36. package/dist/lib/batcher.js.map +1 -1
  37. package/dist/lib/constants.js +14 -0
  38. package/dist/lib/constants.js.map +1 -0
  39. package/dist/lib/credentials/credentials.js +98 -139
  40. package/dist/lib/credentials/credentials.js.map +1 -1
  41. package/dist/lib/credentials/grant-errors.js +0 -49
  42. package/dist/lib/credentials/grant-errors.js.map +1 -1
  43. package/dist/lib/credentials/index.js +1 -13
  44. package/dist/lib/credentials/index.js.map +1 -1
  45. package/dist/lib/credentials/scope.js +25 -14
  46. package/dist/lib/credentials/scope.js.map +1 -1
  47. package/dist/lib/credentials/token-collection.js +1 -7
  48. package/dist/lib/credentials/token-collection.js.map +1 -1
  49. package/dist/lib/credentials/token.js +42 -118
  50. package/dist/lib/credentials/token.js.map +1 -1
  51. package/dist/lib/page.js +13 -26
  52. package/dist/lib/page.js.map +1 -1
  53. package/dist/lib/services/constants.js +0 -2
  54. package/dist/lib/services/constants.js.map +1 -1
  55. package/dist/lib/services/index.js +1 -28
  56. package/dist/lib/services/index.js.map +1 -1
  57. package/dist/lib/services/interceptors/server-error.js +2 -23
  58. package/dist/lib/services/interceptors/server-error.js.map +1 -1
  59. package/dist/lib/services/interceptors/service.js +15 -35
  60. package/dist/lib/services/interceptors/service.js.map +1 -1
  61. package/dist/lib/services/metrics.js +0 -2
  62. package/dist/lib/services/metrics.js.map +1 -1
  63. package/dist/lib/services/service-catalog.js +12 -91
  64. package/dist/lib/services/service-catalog.js.map +1 -1
  65. package/dist/lib/services/service-fed-ramp.js +0 -2
  66. package/dist/lib/services/service-fed-ramp.js.map +1 -1
  67. package/dist/lib/services/service-host.js +47 -62
  68. package/dist/lib/services/service-host.js.map +1 -1
  69. package/dist/lib/services/service-registry.js +78 -90
  70. package/dist/lib/services/service-registry.js.map +1 -1
  71. package/dist/lib/services/service-state.js +3 -15
  72. package/dist/lib/services/service-state.js.map +1 -1
  73. package/dist/lib/services/service-url.js +4 -25
  74. package/dist/lib/services/service-url.js.map +1 -1
  75. package/dist/lib/services/services.js +135 -239
  76. package/dist/lib/services/services.js.map +1 -1
  77. package/dist/lib/stateless-webex-plugin.js +5 -28
  78. package/dist/lib/stateless-webex-plugin.js.map +1 -1
  79. package/dist/lib/storage/decorators.js +19 -62
  80. package/dist/lib/storage/decorators.js.map +1 -1
  81. package/dist/lib/storage/errors.js +0 -23
  82. package/dist/lib/storage/errors.js.map +1 -1
  83. package/dist/lib/storage/index.js +2 -16
  84. package/dist/lib/storage/index.js.map +1 -1
  85. package/dist/lib/storage/make-webex-plugin-store.js +11 -41
  86. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  87. package/dist/lib/storage/make-webex-store.js +8 -30
  88. package/dist/lib/storage/make-webex-store.js.map +1 -1
  89. package/dist/lib/storage/memory-store-adapter.js +1 -19
  90. package/dist/lib/storage/memory-store-adapter.js.map +1 -1
  91. package/dist/lib/webex-core-plugin-mixin.js +9 -29
  92. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  93. package/dist/lib/webex-http-error.js +1 -31
  94. package/dist/lib/webex-http-error.js.map +1 -1
  95. package/dist/lib/webex-internal-core-plugin-mixin.js +9 -29
  96. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  97. package/dist/lib/webex-plugin.js +6 -40
  98. package/dist/lib/webex-plugin.js.map +1 -1
  99. package/dist/plugins/logger.js +3 -17
  100. package/dist/plugins/logger.js.map +1 -1
  101. package/dist/webex-core.js +84 -203
  102. package/dist/webex-core.js.map +1 -1
  103. package/dist/webex-internal-core.js +0 -10
  104. package/dist/webex-internal-core.js.map +1 -1
  105. package/package.json +14 -14
  106. package/src/config.js +9 -11
  107. package/src/credentials-config.js +110 -72
  108. package/src/index.js +4 -14
  109. package/src/interceptors/auth.js +36 -37
  110. package/src/interceptors/default-options.js +0 -1
  111. package/src/interceptors/embargo.js +1 -1
  112. package/src/interceptors/payload-transformer.js +1 -2
  113. package/src/interceptors/rate-limit.js +8 -5
  114. package/src/interceptors/redirect.js +14 -8
  115. package/src/interceptors/request-event.js +4 -8
  116. package/src/interceptors/request-logger.js +8 -5
  117. package/src/interceptors/response-logger.js +11 -8
  118. package/src/interceptors/user-agent.js +1 -2
  119. package/src/interceptors/webex-user-agent.js +3 -9
  120. package/src/lib/batcher.js +70 -69
  121. package/src/lib/constants.js +6 -0
  122. package/src/lib/credentials/credentials.js +173 -141
  123. package/src/lib/credentials/grant-errors.js +6 -7
  124. package/src/lib/credentials/index.js +1 -4
  125. package/src/lib/credentials/scope.js +24 -8
  126. package/src/lib/credentials/token-collection.js +1 -1
  127. package/src/lib/credentials/token.js +95 -81
  128. package/src/lib/page.js +10 -11
  129. package/src/lib/services/constants.js +3 -13
  130. package/src/lib/services/index.js +2 -2
  131. package/src/lib/services/interceptors/server-error.js +12 -7
  132. package/src/lib/services/interceptors/service.js +7 -6
  133. package/src/lib/services/metrics.js +1 -1
  134. package/src/lib/services/service-catalog.js +112 -100
  135. package/src/lib/services/service-fed-ramp.js +1 -2
  136. package/src/lib/services/service-host.js +10 -17
  137. package/src/lib/services/service-registry.js +69 -96
  138. package/src/lib/services/service-state.js +4 -6
  139. package/src/lib/services/service-url.js +24 -23
  140. package/src/lib/services/services.js +272 -249
  141. package/src/lib/stateless-webex-plugin.js +4 -2
  142. package/src/lib/storage/decorators.js +68 -66
  143. package/src/lib/storage/index.js +4 -6
  144. package/src/lib/storage/make-webex-plugin-store.js +34 -21
  145. package/src/lib/storage/make-webex-store.js +6 -7
  146. package/src/lib/storage/memory-store-adapter.js +3 -3
  147. package/src/lib/webex-core-plugin-mixin.js +10 -7
  148. package/src/lib/webex-http-error.js +7 -8
  149. package/src/lib/webex-internal-core-plugin-mixin.js +9 -6
  150. package/src/lib/webex-plugin.js +41 -34
  151. package/src/plugins/logger.js +8 -3
  152. package/src/webex-core.js +198 -117
  153. package/src/webex-internal-core.js +15 -9
  154. package/test/integration/spec/credentials/credentials.js +26 -30
  155. package/test/integration/spec/credentials/token.js +36 -33
  156. package/test/integration/spec/services/service-catalog.js +177 -156
  157. package/test/integration/spec/services/services.js +313 -304
  158. package/test/integration/spec/webex-core.js +98 -86
  159. package/test/unit/spec/_setup.js +26 -18
  160. package/test/unit/spec/credentials/credentials.js +352 -162
  161. package/test/unit/spec/credentials/scope.js +80 -0
  162. package/test/unit/spec/credentials/token.js +105 -77
  163. package/test/unit/spec/interceptors/auth.js +294 -243
  164. package/test/unit/spec/interceptors/default-options.js +36 -24
  165. package/test/unit/spec/interceptors/embargo.js +32 -27
  166. package/test/unit/spec/interceptors/network-timing.js +2 -2
  167. package/test/unit/spec/interceptors/payload-transformer.js +61 -52
  168. package/test/unit/spec/interceptors/rate-limit.js +104 -75
  169. package/test/unit/spec/interceptors/redirect.js +22 -20
  170. package/test/unit/spec/interceptors/request-timing.js +18 -22
  171. package/test/unit/spec/interceptors/user-agent.js +28 -16
  172. package/test/unit/spec/interceptors/webex-tracking-id.js +14 -8
  173. package/test/unit/spec/interceptors/webex-user-agent.js +83 -37
  174. package/test/unit/spec/lib/batcher.js +36 -32
  175. package/test/unit/spec/lib/page.js +36 -32
  176. package/test/unit/spec/lib/webex-plugin.js +1 -1
  177. package/test/unit/spec/services/interceptors/server-error.js +67 -90
  178. package/test/unit/spec/services/interceptors/service.js +23 -28
  179. package/test/unit/spec/services/service-catalog.js +19 -27
  180. package/test/unit/spec/services/service-host.js +29 -26
  181. package/test/unit/spec/services/service-registry.js +128 -170
  182. package/test/unit/spec/services/service-state.js +13 -22
  183. package/test/unit/spec/services/service-url.js +24 -43
  184. package/test/unit/spec/services/services.js +147 -41
  185. package/test/unit/spec/storage/persist.js +6 -9
  186. package/test/unit/spec/storage/wait-for-value.js +22 -21
  187. package/test/unit/spec/webex-core.js +90 -57
  188. package/test/unit/spec/webex-internal-core.js +56 -31
@@ -0,0 +1,80 @@
1
+ import {assert} from '@webex/test-helper-chai';
2
+ import {
3
+ sortScope,
4
+ filterScope,
5
+ diffScopes,
6
+ isGuestScope,
7
+ } from '@webex/webex-core/src/lib/credentials/scope';
8
+
9
+ describe('webex-core', () => {
10
+ describe('scope utils', () => {
11
+ describe('sortScope', () => {
12
+ [
13
+ {scope: undefined, expected: ''},
14
+ {scope: '', expected: ''},
15
+ {scope: 'a', expected: 'a'},
16
+ {scope: 'b c a', expected: 'a b c'},
17
+ ].forEach(({scope, expected}) =>
18
+ it(`should sort "${scope}" alphabetically`, () => {
19
+ assert.equal(sortScope(scope), expected);
20
+ })
21
+ );
22
+ });
23
+
24
+ describe('filterScope', () => {
25
+ [
26
+ {toFilter: 'a', scope: undefined, expected: ''},
27
+ {toFilter: 'a', scope: '', expected: ''},
28
+ {toFilter: 'a', scope: 'a', expected: ''},
29
+ {toFilter: 'a', scope: 'a b c', expected: 'b c'},
30
+ {toFilter: 'c', scope: 'a c b', expected: 'a b'},
31
+ ].forEach(({toFilter, scope, expected}) =>
32
+ it(`should filter out ${toFilter} scope from ${scope} scope and sort the result`, () => {
33
+ assert.equal(filterScope(toFilter, scope), expected);
34
+ })
35
+ );
36
+
37
+ [
38
+ {toFilter: [], scope: 'a', expected: 'a'},
39
+ {toFilter: ['a', 'b'], scope: undefined, expected: ''},
40
+ {toFilter: ['a', 'b'], scope: '', expected: ''},
41
+ {toFilter: ['a', 'b'], scope: 'a', expected: ''},
42
+ {toFilter: ['a', 'b'], scope: 'a b c', expected: 'c'},
43
+ {toFilter: ['a', 'd'], scope: 'a c a b', expected: 'b c'},
44
+ ].forEach(({toFilter, scope, expected}) =>
45
+ it(`should filter out ${toFilter} from ${scope} and sort the result`, () => {
46
+ assert.equal(filterScope(toFilter, scope), expected);
47
+ })
48
+ );
49
+ });
50
+
51
+ describe('diffScopes', () => {
52
+ [
53
+ {scope1: undefined, scope2: undefined, expected: ''},
54
+ {scope1: undefined, scope2: '', expected: ''},
55
+ {scope1: '', scope2: undefined, expected: ''},
56
+ {scope1: '', scope2: '', expected: ''},
57
+ {scope1: 'a', scope2: 'a', expected: ''},
58
+ {scope1: 'a b c', scope2: 'a b c', expected: ''},
59
+ {scope1: undefined, scope2: 'a b c', expected: ''},
60
+ {scope1: 'a b c', scope2: 'a b c d', expected: ''},
61
+ ].forEach(({scope1, scope2, expected}) =>
62
+ it(`should return an empty string, when all items in ${scope1} scope are contained in the ${scope2} scope`, () => {
63
+ assert.deepEqual(diffScopes(scope1, scope2), expected);
64
+ })
65
+ );
66
+
67
+ [
68
+ {scope1: 'a', scope2: undefined, expected: 'a'},
69
+ {scope1: 'a', scope2: 'b', expected: 'a'},
70
+ {scope1: 'a b c', scope2: 'a b', expected: 'c'},
71
+ {scope1: 'a b c d', scope2: 'a b c', expected: 'd'},
72
+ {scope1: 'a b c', scope2: undefined, expected: 'a b c'},
73
+ ].forEach(({scope1, scope2, expected}) =>
74
+ it(`should return a string containing all items in the ${scope1} scope that are not in the ${scope2} scope`, () => {
75
+ assert.deepEqual(diffScopes(scope1, scope2), expected);
76
+ })
77
+ );
78
+ });
79
+ });
80
+ });
@@ -24,13 +24,19 @@ describe('webex-core', () => {
24
24
  });
25
25
 
26
26
  function makeToken(options = {}) {
27
- return new Token(Object.assign({
28
- access_token: 'AT',
29
- expires_in: 10000,
30
- token_type: 'Fake',
31
- refresh_token: 'RT',
32
- refresh_token_expires_in: 20000
33
- }, options), {parent: webex});
27
+ return new Token(
28
+ Object.assign(
29
+ {
30
+ access_token: 'AT',
31
+ expires_in: 10000,
32
+ token_type: 'Fake',
33
+ refresh_token: 'RT',
34
+ refresh_token_expires_in: 20000,
35
+ },
36
+ options
37
+ ),
38
+ {parent: webex}
39
+ );
34
40
  }
35
41
 
36
42
  describe('#canAuthorize', () => {
@@ -154,15 +160,29 @@ describe('webex-core', () => {
154
160
  it('requires an unexpired access token', () => {
155
161
  const token = makeToken({expires: Date.now() - 10000});
156
162
 
157
- return assert.isRejected(token.downscope('spark:kms'), /cannot downscope expired access token/);
163
+ return assert.isRejected(
164
+ token.downscope('spark:kms'),
165
+ /cannot downscope expired access token/
166
+ );
167
+ });
168
+
169
+ it('rejects downscope when the new scope is not super set of the available scopes', () => {
170
+ const token = makeToken();
171
+ token.config.scope = 'scopeY scopeZ';
172
+
173
+ return assert.isRejected(
174
+ token.downscope('scopeX'),
175
+ /new scope \(scopeX\) is not subset of the available scopes \(scopeY scopeZ\)/
176
+ );
158
177
  });
159
178
 
160
179
  it('alphabetizes the requested scope', () => {
161
180
  const token = makeToken();
162
181
 
163
182
  webex.request.returns(Promise.resolve({body: {access_token: 'AT2'}}));
164
-
165
- return token.downscope('b a')
183
+ token.config.scope = 'a b c';
184
+ return token
185
+ .downscope('b a')
166
186
  .then(() => assert.equal(webex.request.args[0][0].form.scope, 'a b'));
167
187
  });
168
188
  });
@@ -189,7 +209,7 @@ describe('webex-core', () => {
189
209
 
190
210
  it('infers token_type from an access token string', () => {
191
211
  const t = new Token({
192
- access_token: 'Fake AT'
212
+ access_token: 'Fake AT',
193
213
  });
194
214
 
195
215
  assert.equal(t.access_token, 'AT');
@@ -203,17 +223,17 @@ describe('webex-core', () => {
203
223
  expires_in: 6000,
204
224
  refresh_token_expires_in: 12000,
205
225
  expires: null,
206
- refresh_token_expires: null
226
+ refresh_token_expires: null,
207
227
  });
208
228
 
209
229
  assert.approximately(t.expires, 6000000 + now, 5);
210
230
  assert.approximately(t.refresh_token_expires, 12000000 + now, 5);
211
231
  });
212
232
 
213
- it('alphabetizes the token\'s scopes', () => {
233
+ it("alphabetizes the token's scopes", () => {
214
234
  const t = new Token({
215
235
  access_token: 'AT',
216
- scope: 'b a'
236
+ scope: 'b a',
217
237
  });
218
238
 
219
239
  assert.equal(t.scope, 'a b');
@@ -222,7 +242,7 @@ describe('webex-core', () => {
222
242
  it('it sets a timer to set Token#_isExpired (and therefore Token#isExpired)', () => {
223
243
  const t = makeToken({
224
244
  // Reminder: expires_in is in seconds, ticks are in miliseconds
225
- expires_in: 1
245
+ expires_in: 1,
226
246
  });
227
247
 
228
248
  assert.isFalse(t.isExpired);
@@ -251,37 +271,39 @@ describe('webex-core', () => {
251
271
  browserOnly(it)('refreshes the access_token', () => {
252
272
  const token = makeToken();
253
273
 
254
- webex.config.credentials.refreshCallback = sinon.stub().returns(Promise.resolve({
255
- access_token: 'AT2',
256
- expires_in: 10000,
257
- token_type: 'Fake'
258
- }));
274
+ webex.config.credentials.refreshCallback = sinon.stub().returns(
275
+ Promise.resolve({
276
+ access_token: 'AT2',
277
+ expires_in: 10000,
278
+ token_type: 'Fake',
279
+ })
280
+ );
259
281
 
260
282
  // FIXME this next line should be necessary. we need a better way to
261
283
  // do config
262
284
  token.trigger('change:config');
263
285
 
264
- return token.refresh()
265
- .then((token2) => {
266
- assert.equal(token2.access_token, 'AT2');
267
- });
286
+ return token.refresh().then((token2) => {
287
+ assert.equal(token2.access_token, 'AT2');
288
+ });
268
289
  });
269
290
 
270
291
  nodeOnly(it)('refreshes the access_token', () => {
271
292
  const token = makeToken();
272
293
 
273
- webex.request.onCall(0).returns(Promise.resolve({
274
- body: {
275
- access_token: 'AT2',
276
- expires_in: 10000,
277
- token_type: 'Fake'
278
- }
279
- }));
294
+ webex.request.onCall(0).returns(
295
+ Promise.resolve({
296
+ body: {
297
+ access_token: 'AT2',
298
+ expires_in: 10000,
299
+ token_type: 'Fake',
300
+ },
301
+ })
302
+ );
280
303
 
281
- return token.refresh()
282
- .then((token2) => {
283
- assert.equal(token2.access_token, 'AT2');
284
- });
304
+ return token.refresh().then((token2) => {
305
+ assert.equal(token2.access_token, 'AT2');
306
+ });
285
307
  });
286
308
 
287
309
  browserOnly(it)('revokes the previous token when set', () => {
@@ -290,23 +312,28 @@ describe('webex-core', () => {
290
312
  sinon.spy(token, 'revoke');
291
313
  webex.config.credentials.refreshCallback = sinon.stub();
292
314
 
293
- webex.config.credentials.refreshCallback.onCall(0).returns(Promise.resolve({
294
- access_token: 'AT2',
295
- expires_in: 10000,
296
- token_type: 'Fake'
297
- }));
315
+ webex.config.credentials.refreshCallback.onCall(0).returns(
316
+ Promise.resolve({
317
+ access_token: 'AT2',
318
+ expires_in: 10000,
319
+ token_type: 'Fake',
320
+ })
321
+ );
298
322
 
299
- webex.config.credentials.refreshCallback.onCall(1).returns(Promise.resolve({
300
- access_token: 'AT3',
301
- expires_in: 10000,
302
- token_type: 'Fake'
303
- }));
323
+ webex.config.credentials.refreshCallback.onCall(1).returns(
324
+ Promise.resolve({
325
+ access_token: 'AT3',
326
+ expires_in: 10000,
327
+ token_type: 'Fake',
328
+ })
329
+ );
304
330
 
305
331
  // FIXME this next line should be necessary. we need a better way to
306
332
  // do config
307
333
  token.trigger('change:config');
308
334
 
309
- return token.refresh()
335
+ return token
336
+ .refresh()
310
337
  .then((token2) => {
311
338
  assert.isTrue(token.canRefresh);
312
339
  assert.notCalled(token.revoke);
@@ -324,23 +351,28 @@ describe('webex-core', () => {
324
351
 
325
352
  sinon.spy(token, 'revoke');
326
353
 
327
- webex.request.onCall(0).returns(Promise.resolve({
328
- body: {
329
- access_token: 'AT2',
330
- expires_in: 10000,
331
- token_type: 'Fake'
332
- }
333
- }));
334
-
335
- webex.request.onCall(1).returns(Promise.resolve({
336
- body: {
337
- access_token: 'AT3',
338
- expires_in: 10000,
339
- token_type: 'Fake'
340
- }
341
- }));
354
+ webex.request.onCall(0).returns(
355
+ Promise.resolve({
356
+ body: {
357
+ access_token: 'AT2',
358
+ expires_in: 10000,
359
+ token_type: 'Fake',
360
+ },
361
+ })
362
+ );
363
+
364
+ webex.request.onCall(1).returns(
365
+ Promise.resolve({
366
+ body: {
367
+ access_token: 'AT3',
368
+ expires_in: 10000,
369
+ token_type: 'Fake',
370
+ },
371
+ })
372
+ );
342
373
 
343
- return token.refresh()
374
+ return token
375
+ .refresh()
344
376
  .then((token2) => {
345
377
  assert.isTrue(token.canRefresh);
346
378
  assert.notCalled(token.revoke);
@@ -359,8 +391,7 @@ describe('webex-core', () => {
359
391
  it('is a noop', () => {
360
392
  const token = makeToken({expires: Date.now() - 10000});
361
393
 
362
- return token.revoke()
363
- .then(() => assert.notCalled(webex.request));
394
+ return token.revoke().then(() => assert.notCalled(webex.request));
364
395
  });
365
396
  });
366
397
 
@@ -370,8 +401,7 @@ describe('webex-core', () => {
370
401
 
371
402
  token.unset('access_token');
372
403
 
373
- return token.revoke()
374
- .then(() => assert.notCalled(webex.request));
404
+ return token.revoke().then(() => assert.notCalled(webex.request));
375
405
  });
376
406
  });
377
407
 
@@ -385,23 +415,21 @@ describe('webex-core', () => {
385
415
 
386
416
  token.unset('access_token');
387
417
 
388
- return token.revoke()
389
- .then(() => assert.notCalled(webex.request));
418
+ return token.revoke().then(() => assert.notCalled(webex.request));
390
419
  });
391
420
  });
392
421
 
393
422
  it('unsets the access_token and related values', () => {
394
423
  const token = makeToken();
395
424
 
396
- return token.revoke()
397
- .then(() => {
398
- assert.isUndefined(token.access_token);
399
- assert.isUndefined(token.expires);
400
- assert.isUndefined(token.expires_in);
401
- assert.isDefined(token.refresh_token);
402
- assert.isDefined(token.refresh_token_expires);
403
- assert.isDefined(token.refresh_token_expires_in);
404
- });
425
+ return token.revoke().then(() => {
426
+ assert.isUndefined(token.access_token);
427
+ assert.isUndefined(token.expires);
428
+ assert.isUndefined(token.expires_in);
429
+ assert.isDefined(token.refresh_token);
430
+ assert.isDefined(token.refresh_token_expires);
431
+ assert.isDefined(token.refresh_token_expires_in);
432
+ });
405
433
  });
406
434
  });
407
435