@sprucelabs/mercury-client 42.0.556 → 42.0.558

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 (174) hide show
  1. package/build/esm/.spruce/errors/errors.types.d.ts +324 -0
  2. package/build/esm/.spruce/errors/errors.types.js +1 -0
  3. package/build/esm/.spruce/errors/mercuryClient/connectionFailed.schema.d.ts +3 -0
  4. package/build/esm/.spruce/errors/mercuryClient/connectionFailed.schema.js +25 -0
  5. package/build/esm/.spruce/errors/mercuryClient/invalidEventSignature.schema.d.ts +3 -0
  6. package/build/esm/.spruce/errors/mercuryClient/invalidEventSignature.schema.js +25 -0
  7. package/build/esm/.spruce/errors/mercuryClient/invalidPayload.schema.d.ts +3 -0
  8. package/build/esm/.spruce/errors/mercuryClient/invalidPayload.schema.js +19 -0
  9. package/build/esm/.spruce/errors/mercuryClient/invalidProtocol.schema.d.ts +3 -0
  10. package/build/esm/.spruce/errors/mercuryClient/invalidProtocol.schema.js +19 -0
  11. package/build/esm/.spruce/errors/mercuryClient/missingTestCacheDir.schema.d.ts +3 -0
  12. package/build/esm/.spruce/errors/mercuryClient/missingTestCacheDir.schema.js +12 -0
  13. package/build/esm/.spruce/errors/mercuryClient/mustCreateEvent.schema.d.ts +3 -0
  14. package/build/esm/.spruce/errors/mercuryClient/mustCreateEvent.schema.js +19 -0
  15. package/build/esm/.spruce/errors/mercuryClient/mustHandleLocally.schema.d.ts +3 -0
  16. package/build/esm/.spruce/errors/mercuryClient/mustHandleLocally.schema.js +19 -0
  17. package/build/esm/.spruce/errors/mercuryClient/notConnected.schema.d.ts +3 -0
  18. package/build/esm/.spruce/errors/mercuryClient/notConnected.schema.js +25 -0
  19. package/build/esm/.spruce/errors/mercuryClient/timeout.schema.d.ts +3 -0
  20. package/build/esm/.spruce/errors/mercuryClient/timeout.schema.js +35 -0
  21. package/build/esm/.spruce/errors/mercuryClient/unauthorizedAccess.schema.d.ts +3 -0
  22. package/build/esm/.spruce/errors/mercuryClient/unauthorizedAccess.schema.js +41 -0
  23. package/build/esm/.spruce/errors/mercuryClient/unauthorizedTarget.schema.d.ts +3 -0
  24. package/build/esm/.spruce/errors/mercuryClient/unauthorizedTarget.schema.js +38 -0
  25. package/build/esm/.spruce/errors/mercuryClient/unexpectedPayload.schema.d.ts +3 -0
  26. package/build/esm/.spruce/errors/mercuryClient/unexpectedPayload.schema.js +19 -0
  27. package/build/esm/.spruce/errors/mercuryClient/unknownError.schema.d.ts +3 -0
  28. package/build/esm/.spruce/errors/mercuryClient/unknownError.schema.js +12 -0
  29. package/build/esm/.spruce/errors/options.types.d.ts +40 -0
  30. package/build/esm/.spruce/errors/options.types.js +1 -0
  31. package/build/esm/.spruce/event-cache.json +1 -0
  32. package/build/esm/.spruce/schemas/fields/fieldClassMap.d.ts +2 -0
  33. package/build/esm/.spruce/schemas/fields/fieldClassMap.js +5 -0
  34. package/build/esm/.spruce/schemas/fields/fields.types.d.ts +1 -0
  35. package/build/esm/.spruce/schemas/fields/fields.types.js +3 -0
  36. package/build/esm/.spruce/schemas/schemas.types.d.ts +1 -0
  37. package/build/esm/.spruce/schemas/schemas.types.js +3 -0
  38. package/build/esm/.spruce/settings.json +26 -0
  39. package/build/esm/clients/MercuryClientFactory.d.ts +26 -0
  40. package/build/esm/clients/MercuryClientFactory.js +96 -0
  41. package/build/esm/clients/MercurySocketIoClient.d.ts +89 -0
  42. package/build/esm/clients/MercurySocketIoClient.js +605 -0
  43. package/build/esm/clients/MercuryTestClient.d.ts +57 -0
  44. package/build/esm/clients/MercuryTestClient.js +389 -0
  45. package/build/esm/clients/MutableContractClient.d.ts +10 -0
  46. package/build/esm/clients/MutableContractClient.js +43 -0
  47. package/build/esm/clients/statusChangePayloadSchema.d.ts +103 -0
  48. package/build/esm/clients/statusChangePayloadSchema.js +45 -0
  49. package/build/esm/constants.d.ts +1 -0
  50. package/build/esm/constants.js +1 -0
  51. package/build/esm/errors/SpruceError.d.ts +5 -0
  52. package/build/esm/errors/SpruceError.js +66 -0
  53. package/build/esm/errors/connectionFailed.builder.d.ts +16 -0
  54. package/build/esm/errors/connectionFailed.builder.js +16 -0
  55. package/build/esm/errors/invalidEventSignature.builder.d.ts +15 -0
  56. package/build/esm/errors/invalidEventSignature.builder.js +15 -0
  57. package/build/esm/errors/invalidPayload.builder.d.ts +12 -0
  58. package/build/esm/errors/invalidPayload.builder.js +12 -0
  59. package/build/esm/errors/invalidProtocol.builder.d.ts +12 -0
  60. package/build/esm/errors/invalidProtocol.builder.js +12 -0
  61. package/build/esm/errors/missingTestCacheDir.builder.d.ts +7 -0
  62. package/build/esm/errors/missingTestCacheDir.builder.js +7 -0
  63. package/build/esm/errors/mustCreateEvent.builder.d.ts +11 -0
  64. package/build/esm/errors/mustCreateEvent.builder.js +11 -0
  65. package/build/esm/errors/mustHandleLocally.builder.d.ts +11 -0
  66. package/build/esm/errors/mustHandleLocally.builder.js +11 -0
  67. package/build/esm/errors/notConnected.builder.d.ts +16 -0
  68. package/build/esm/errors/notConnected.builder.js +16 -0
  69. package/build/esm/errors/timeout.builder.d.ts +22 -0
  70. package/build/esm/errors/timeout.builder.js +22 -0
  71. package/build/esm/errors/unauthorizedAccess.builder.d.ts +57 -0
  72. package/build/esm/errors/unauthorizedAccess.builder.js +39 -0
  73. package/build/esm/errors/unexpectedPayload.builder.d.ts +12 -0
  74. package/build/esm/errors/unexpectedPayload.builder.js +12 -0
  75. package/build/esm/errors/unknownError.builder.d.ts +6 -0
  76. package/build/esm/errors/unknownError.builder.js +6 -0
  77. package/build/esm/index.d.ts +6 -0
  78. package/build/esm/index.js +6 -0
  79. package/build/esm/tests/AbstractClientTest.d.ts +31 -0
  80. package/build/esm/tests/AbstractClientTest.js +212 -0
  81. package/build/esm/tests/constants.d.ts +9 -0
  82. package/build/esm/tests/constants.js +11 -0
  83. package/build/esm/types/client.types.d.ts +30 -0
  84. package/build/esm/types/client.types.js +1 -0
  85. package/build/esm/utilities/socketIoEventUtil.utility.d.ts +5 -0
  86. package/build/esm/utilities/socketIoEventUtil.utility.js +9 -0
  87. package/package.json +12 -12
  88. package/build/__tests__/behavioral/AuthenticatingAndReauthenticating.test.d.ts +0 -21
  89. package/build/__tests__/behavioral/AuthenticatingAndReauthenticating.test.js +0 -287
  90. package/build/__tests__/behavioral/AuthenticatingAndReauthenticating.test.js.map +0 -1
  91. package/build/__tests__/behavioral/DisablingPermissionChecksWhenEmittingLocally.test.d.ts +0 -7
  92. package/build/__tests__/behavioral/DisablingPermissionChecksWhenEmittingLocally.test.js +0 -49
  93. package/build/__tests__/behavioral/DisablingPermissionChecksWhenEmittingLocally.test.js.map +0 -1
  94. package/build/__tests__/behavioral/EmittingAndFlatteningResponses.test.d.ts +0 -52
  95. package/build/__tests__/behavioral/EmittingAndFlatteningResponses.test.js +0 -123
  96. package/build/__tests__/behavioral/EmittingAndFlatteningResponses.test.js.map +0 -1
  97. package/build/__tests__/behavioral/EmittingConnectionChangeInTests.test.d.ts +0 -9
  98. package/build/__tests__/behavioral/EmittingConnectionChangeInTests.test.js +0 -103
  99. package/build/__tests__/behavioral/EmittingConnectionChangeInTests.test.js.map +0 -1
  100. package/build/__tests__/behavioral/LocallyHandlingAuthenticateDelaysConnect.test.d.ts +0 -7
  101. package/build/__tests__/behavioral/LocallyHandlingAuthenticateDelaysConnect.test.js +0 -91
  102. package/build/__tests__/behavioral/LocallyHandlingAuthenticateDelaysConnect.test.js.map +0 -1
  103. package/build/__tests__/behavioral/MercuryClientFactory.test.d.ts +0 -7
  104. package/build/__tests__/behavioral/MercuryClientFactory.test.js +0 -85
  105. package/build/__tests__/behavioral/MercuryClientFactory.test.js.map +0 -1
  106. package/build/__tests__/behavioral/ProxyingEvents.test.d.ts +0 -11
  107. package/build/__tests__/behavioral/ProxyingEvents.test.js +0 -99
  108. package/build/__tests__/behavioral/ProxyingEvents.test.js.map +0 -1
  109. package/build/__tests__/behavioral/ReconnectingAutomatically.test.d.ts +0 -33
  110. package/build/__tests__/behavioral/ReconnectingAutomatically.test.js +0 -390
  111. package/build/__tests__/behavioral/ReconnectingAutomatically.test.js.map +0 -1
  112. package/build/__tests__/behavioral/RequiringLocalListeners.test.d.ts +0 -7
  113. package/build/__tests__/behavioral/RequiringLocalListeners.test.js +0 -65
  114. package/build/__tests__/behavioral/RequiringLocalListeners.test.js.map +0 -1
  115. package/build/__tests__/behavioral/SettingNamespacesThatMustBeHandledLocally.test.d.ts +0 -9
  116. package/build/__tests__/behavioral/SettingNamespacesThatMustBeHandledLocally.test.js +0 -66
  117. package/build/__tests__/behavioral/SettingNamespacesThatMustBeHandledLocally.test.js.map +0 -1
  118. package/build/__tests__/behavioral/SimulatingEventsForTesting.test.d.ts +0 -51
  119. package/build/__tests__/behavioral/SimulatingEventsForTesting.test.js +0 -821
  120. package/build/__tests__/behavioral/SimulatingEventsForTesting.test.js.map +0 -1
  121. package/build/__tests__/behavioral/TestClientSpeedTests.test.d.ts +0 -7
  122. package/build/__tests__/behavioral/TestClientSpeedTests.test.js +0 -44
  123. package/build/__tests__/behavioral/TestClientSpeedTests.test.js.map +0 -1
  124. package/build/__tests__/behavioral/TestingWithDefaultContracts.test.d.ts +0 -7
  125. package/build/__tests__/behavioral/TestingWithDefaultContracts.test.js +0 -56
  126. package/build/__tests__/behavioral/TestingWithDefaultContracts.test.js.map +0 -1
  127. package/build/__tests__/behavioral/TurningOffAListener.test.d.ts +0 -16
  128. package/build/__tests__/behavioral/TurningOffAListener.test.js +0 -126
  129. package/build/__tests__/behavioral/TurningOffAListener.test.js.map +0 -1
  130. package/build/__tests__/behavioral/UsingMercuryClient.test.d.ts +0 -45
  131. package/build/__tests__/behavioral/UsingMercuryClient.test.js +0 -662
  132. package/build/__tests__/behavioral/UsingMercuryClient.test.js.map +0 -1
  133. /package/build/{.spruce → esm/.spruce}/errors/errors.types.js.map +0 -0
  134. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/connectionFailed.schema.js.map +0 -0
  135. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/invalidEventSignature.schema.js.map +0 -0
  136. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/invalidPayload.schema.js.map +0 -0
  137. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/invalidProtocol.schema.js.map +0 -0
  138. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/missingTestCacheDir.schema.js.map +0 -0
  139. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/mustCreateEvent.schema.js.map +0 -0
  140. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/mustHandleLocally.schema.js.map +0 -0
  141. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/notConnected.schema.js.map +0 -0
  142. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/timeout.schema.js.map +0 -0
  143. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/unauthorizedAccess.schema.js.map +0 -0
  144. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/unauthorizedTarget.schema.js.map +0 -0
  145. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/unexpectedPayload.schema.js.map +0 -0
  146. /package/build/{.spruce → esm/.spruce}/errors/mercuryClient/unknownError.schema.js.map +0 -0
  147. /package/build/{.spruce → esm/.spruce}/errors/options.types.js.map +0 -0
  148. /package/build/{.spruce → esm/.spruce}/schemas/fields/fieldClassMap.js.map +0 -0
  149. /package/build/{.spruce → esm/.spruce}/schemas/fields/fields.types.js.map +0 -0
  150. /package/build/{.spruce → esm/.spruce}/schemas/schemas.types.js.map +0 -0
  151. /package/build/{clients → esm/clients}/MercuryClientFactory.js.map +0 -0
  152. /package/build/{clients → esm/clients}/MercurySocketIoClient.js.map +0 -0
  153. /package/build/{clients → esm/clients}/MercuryTestClient.js.map +0 -0
  154. /package/build/{clients → esm/clients}/MutableContractClient.js.map +0 -0
  155. /package/build/{clients → esm/clients}/statusChangePayloadSchema.js.map +0 -0
  156. /package/build/{constants.js.map → esm/constants.js.map} +0 -0
  157. /package/build/{errors → esm/errors}/SpruceError.js.map +0 -0
  158. /package/build/{errors → esm/errors}/connectionFailed.builder.js.map +0 -0
  159. /package/build/{errors → esm/errors}/invalidEventSignature.builder.js.map +0 -0
  160. /package/build/{errors → esm/errors}/invalidPayload.builder.js.map +0 -0
  161. /package/build/{errors → esm/errors}/invalidProtocol.builder.js.map +0 -0
  162. /package/build/{errors → esm/errors}/missingTestCacheDir.builder.js.map +0 -0
  163. /package/build/{errors → esm/errors}/mustCreateEvent.builder.js.map +0 -0
  164. /package/build/{errors → esm/errors}/mustHandleLocally.builder.js.map +0 -0
  165. /package/build/{errors → esm/errors}/notConnected.builder.js.map +0 -0
  166. /package/build/{errors → esm/errors}/timeout.builder.js.map +0 -0
  167. /package/build/{errors → esm/errors}/unauthorizedAccess.builder.js.map +0 -0
  168. /package/build/{errors → esm/errors}/unexpectedPayload.builder.js.map +0 -0
  169. /package/build/{errors → esm/errors}/unknownError.builder.js.map +0 -0
  170. /package/build/{index.js.map → esm/index.js.map} +0 -0
  171. /package/build/{tests → esm/tests}/AbstractClientTest.js.map +0 -0
  172. /package/build/{tests → esm/tests}/constants.js.map +0 -0
  173. /package/build/{types → esm/types}/client.types.js.map +0 -0
  174. /package/build/{utilities → esm/utilities}/socketIoEventUtil.utility.js.map +0 -0
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils");
13
- const test_utils_1 = require("@sprucelabs/test-utils");
14
- const AbstractClientTest_1 = __importDefault(require("../../tests/AbstractClientTest"));
15
- class ProxyingEventsTest extends AbstractClientTest_1.default {
16
- static async canMakeRequestAsSomeoneUsingProxy() {
17
- const { person1, token, client2 } = await this.loginAndRegisterToken();
18
- const results = await client2.emit('whoami::v2020_12_25', {
19
- source: {
20
- proxyToken: token,
21
- },
22
- });
23
- this.assertPerson1CameBack(results, person1);
24
- }
25
- static async canUseRegisterProxyMethod() {
26
- const { client } = await this.loginAsDemoPerson();
27
- test_utils_1.assert.isFunction(client.registerProxyToken);
28
- const token = await client.registerProxyToken();
29
- const actual = client.getProxyToken();
30
- test_utils_1.assert.isEqual(token, actual);
31
- }
32
- static async registerTokenMethodRegistersValidToken() {
33
- const { client, person } = await this.loginAsDemoPerson();
34
- const { client: client1 } = await this.loginAsDemoPerson();
35
- test_utils_1.assert.isFunction(client.registerProxyToken);
36
- const token = await client.registerProxyToken();
37
- await this.assertClientWithTokenComesBackWithPerson(client1, token, person);
38
- }
39
- static async clientRegistersNewProxyTokenOnReconnect() {
40
- const { client, person } = await this.loginAsDemoPerson();
41
- const token1 = await client.registerProxyToken();
42
- //@ts-ignore
43
- client.socket.disconnect();
44
- let token2 = null;
45
- do {
46
- token2 = client.getProxyToken();
47
- await this.wait(100);
48
- } while (!token2);
49
- test_utils_1.assert.isNotEqual(token1, token2);
50
- const { client: client2 } = await this.loginAsDemoPerson();
51
- await this.assertClientWithTokenComesBackWithPerson(client2, token2, person);
52
- }
53
- static async proxyTokenNotSentToAuthenticate() {
54
- const anonClient = await this.connectToApi();
55
- const { client } = await this.loginAsDemoPerson();
56
- const token = await client.registerProxyToken();
57
- anonClient.setProxyToken(token);
58
- const err = await test_utils_1.assert.doesThrowAsync(() => anonClient.authenticate({
59
- token: '234234',
60
- }));
61
- spruce_event_utils_1.eventAssertUtil.assertError(err, 'INVALID_AUTH_TOKEN');
62
- }
63
- static async assertClientWithTokenComesBackWithPerson(client, token, person) {
64
- const results = await client.emit('whoami::v2020_12_25', {
65
- source: {
66
- proxyToken: token,
67
- },
68
- });
69
- this.assertPerson1CameBack(results, person);
70
- }
71
- static assertPerson1CameBack(results, person1) {
72
- const { auth } = spruce_event_utils_1.eventResponseUtil.getFirstResponseOrThrow(results);
73
- test_utils_1.assert.isTruthy(auth.person);
74
- test_utils_1.assert.isEqual(auth.person.id, person1.id);
75
- }
76
- static async loginAndRegisterToken() {
77
- const { client, person: person1 } = await this.loginAsDemoPerson();
78
- const { client: client2 } = await this.loginAsDemoPerson();
79
- const results = await client.emit('register-proxy-token::v2020_12_25');
80
- const { token } = spruce_event_utils_1.eventResponseUtil.getFirstResponseOrThrow(results);
81
- return { person1, token, client2 };
82
- }
83
- }
84
- exports.default = ProxyingEventsTest;
85
- __decorate([
86
- (0, test_utils_1.test)()
87
- ], ProxyingEventsTest, "canMakeRequestAsSomeoneUsingProxy", null);
88
- __decorate([
89
- (0, test_utils_1.test)()
90
- ], ProxyingEventsTest, "canUseRegisterProxyMethod", null);
91
- __decorate([
92
- (0, test_utils_1.test)()
93
- ], ProxyingEventsTest, "registerTokenMethodRegistersValidToken", null);
94
- __decorate([
95
- (0, test_utils_1.test)()
96
- ], ProxyingEventsTest, "clientRegistersNewProxyTokenOnReconnect", null);
97
- __decorate([
98
- (0, test_utils_1.test)()
99
- ], ProxyingEventsTest, "proxyTokenNotSentToAuthenticate", null);
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProxyingEvents.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/ProxyingEvents.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uEAGuC;AACvC,uDAAqD;AACrD,wFAA+D;AAE/D,MAAqB,kBAAmB,SAAQ,4BAAkB;IAEvC,AAAb,MAAM,CAAC,KAAK,CAAC,iCAAiC;QACpD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAEtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACtD,MAAM,EAAE;gBACJ,UAAU,EAAE,KAAK;aACpB;SACJ,CAAC,CAAA;QAEF,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAEjD,mBAAM,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAA;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAA;QAErC,mBAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sCAAsC;QACzD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACzD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE1D,mBAAM,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAE5C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAA;QAE/C,MAAM,IAAI,CAAC,wCAAwC,CAC/C,OAAO,EACP,KAAK,EACL,MAAM,CACT,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,uCAAuC;QAC1D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAEzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAA;QAEhD,YAAY;QACZ,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;QAE1B,IAAI,MAAM,GAAkB,IAAI,CAAA;QAEhC,GAAG,CAAC;YACA,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAA;YAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC,QAAQ,CAAC,MAAM,EAAC;QAEjB,mBAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAEjC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE1D,MAAM,IAAI,CAAC,wCAAwC,CAC/C,OAAO,EACP,MAAM,EACN,MAAM,CACT,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QAClD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAEjD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAA;QAE/C,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAE/B,MAAM,GAAG,GAAG,MAAM,mBAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CACzC,UAAU,CAAC,YAAY,CAAC;YACpB,KAAK,EAAE,QAAQ;SAClB,CAAC,CACL,CAAA;QAED,oCAAe,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IAC1D,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,wCAAwC,CACzD,MAAW,EACX,KAAa,EACb,MAAW;QAEX,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACrD,MAAM,EAAE;gBACJ,UAAU,EAAE,KAAK;aACpB;SACJ,CAAC,CAAA;QAEF,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,OAAY,EAAE,OAAY;QAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,sCAAiB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAEnE,mBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,mBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAC9C,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,qBAAqB;QACtC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAClE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;QAEtE,MAAM,EAAE,KAAK,EAAE,GAAG,sCAAiB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAEpE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IACtC,CAAC;CACJ;AArHD,qCAqHC;AAnH0B;IADtB,IAAA,iBAAI,GAAE;iEAWN;AAGsB;IADtB,IAAA,iBAAI,GAAE;yDASN;AAGsB;IADtB,IAAA,iBAAI,GAAE;sEAcN;AAGsB;IADtB,IAAA,iBAAI,GAAE;uEAyBN;AAGsB;IADtB,IAAA,iBAAI,GAAE;+DAgBN"}
@@ -1,33 +0,0 @@
1
- import AbstractClientTest from '../../tests/AbstractClientTest';
2
- export default class ReconnectingAutomaticallyTest extends AbstractClientTest {
3
- private static lastSocket?;
4
- protected static beforeEach(): Promise<void>;
5
- protected static invokesReconnectAfterDelayWhenConnectionLost(): Promise<void>;
6
- protected static reconnectsWhenEmittingEventWhenDisconnected(): Promise<void>;
7
- protected static shouldThrowWhenEmittingAfterManualDisconnect(): Promise<void>;
8
- protected static retriesEventIfItFailsAfterTimeout(): Promise<void>;
9
- protected static retriesEventIfItFailsAfterTimeoutWithTestClient(): Promise<void>;
10
- protected static timingOutDuringAuthDoesntThrowAuthBlockedError(): Promise<void>;
11
- protected static manuallyDisconnectStopsReconnectAttempts(): Promise<void>;
12
- protected static canSetConnectionRetries(retries: number): Promise<void>;
13
- protected static failingToConnectAtFirstReturnsClientFromOriginalConnection(): Promise<void>;
14
- protected static canAddStatusChangeListener(): Promise<void>;
15
- protected static canAddMultipleStatusChangeListeners(): Promise<void>;
16
- protected static emitsStatusChangeForAttemptingReconnect(): Promise<void>;
17
- protected static emitRetriesTracksAccurately(retries: number): Promise<void>;
18
- protected static emitsConnectAfterReconnectReRegisterProxyAndListeners(): Promise<void>;
19
- protected static onlyEmitsConnectedOnceWhenReconnecting(): Promise<void>;
20
- private static enableAndEmitConnect;
21
- private static disableConnectAndSendMultipleConnectErrors;
22
- private static connectAsProxySpy;
23
- private static emitConnect;
24
- private static enableConnect;
25
- private static emitConnectError;
26
- private static emitDisconnect;
27
- private static disableConnect;
28
- private static waitAndAssertRetriesDecrement;
29
- private static connectWithEmittingSocket;
30
- private static ClientZeroDelay;
31
- private static assertRetriesEmitOnDisconnect;
32
- private static patchMercuryEmitToThrow;
33
- }
@@ -1,390 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils");
13
- const test_utils_1 = require("@sprucelabs/test-utils");
14
- const socket_io_client_1 = require("socket.io-client");
15
- const MercuryClientFactory_1 = __importDefault(require("../../clients/MercuryClientFactory"));
16
- const MercurySocketIoClient_1 = __importDefault(require("../../clients/MercurySocketIoClient"));
17
- const MercuryTestClient_1 = __importDefault(require("../../clients/MercuryTestClient"));
18
- const MutableContractClient_1 = __importDefault(require("../../clients/MutableContractClient"));
19
- const AbstractClientTest_1 = __importDefault(require("../../tests/AbstractClientTest"));
20
- class ReconnectingAutomaticallyTest extends AbstractClientTest_1.default {
21
- static async beforeEach() {
22
- await super.beforeEach();
23
- MercuryClientFactory_1.default.setIsTestMode(false);
24
- MercuryTestClient_1.default.setShouldRequireLocalListeners(false);
25
- this.lastSocket = undefined;
26
- }
27
- static async invokesReconnectAfterDelayWhenConnectionLost() {
28
- const client = await this.ClientZeroDelay();
29
- let wasHit = false;
30
- //@ts-ignore
31
- client.attemptReconnectAfterDelay = () => {
32
- wasHit = true;
33
- };
34
- //@ts-ignore
35
- client.socket.emitReserved('connect_error', new Error('fail'));
36
- test_utils_1.assert.isTrue(wasHit);
37
- }
38
- static async reconnectsWhenEmittingEventWhenDisconnected() {
39
- const client = await this.ClientZeroDelay();
40
- //@ts-ignore
41
- client.socket.disconnect();
42
- await this.wait(100);
43
- const results = await client.emit('whoami::v2020_12_25');
44
- spruce_event_utils_1.eventResponseUtil.getFirstResponseOrThrow(results);
45
- }
46
- static async shouldThrowWhenEmittingAfterManualDisconnect() {
47
- const client = await this.ClientZeroDelay();
48
- await client.disconnect();
49
- await test_utils_1.assert.doesThrowAsync(() => client.emit('whoami::v2020_12_25'), 'after you have manually disconnected');
50
- }
51
- static async retriesEventIfItFailsAfterTimeout() {
52
- await this.assertRetriesEmitOnDisconnect();
53
- }
54
- static async retriesEventIfItFailsAfterTimeoutWithTestClient() {
55
- MercuryClientFactory_1.default.setIsTestMode(true);
56
- await this.assertRetriesEmitOnDisconnect();
57
- }
58
- static async timingOutDuringAuthDoesntThrowAuthBlockedError() {
59
- const client = await this.connectToApi({ emitTimeoutMs: 1 });
60
- const err = await test_utils_1.assert.doesThrowAsync(() => client.authenticate({ token: 'duh' }));
61
- test_utils_1.errorAssert.assertError(err, 'TIMEOUT');
62
- }
63
- static async manuallyDisconnectStopsReconnectAttempts() {
64
- const client = await this.connectToApi();
65
- //@ts-ignore
66
- client.host = 'https://wontwork.workwont';
67
- //@ts-ignore
68
- void client.socket.disconnect();
69
- await this.wait(10);
70
- await client.disconnect();
71
- await this.wait(1000);
72
- //@ts-ignore
73
- test_utils_1.assert.isFalse(client.isReconnecting);
74
- }
75
- static async canSetConnectionRetries(retries) {
76
- const client = await this.connectToApi({ connectionRetries: retries });
77
- //@ts-ignore
78
- test_utils_1.assert.isEqual(client.connectionRetries, retries);
79
- }
80
- static async failingToConnectAtFirstReturnsClientFromOriginalConnection() {
81
- const connectionErrorSocket = new ConnectionErrorSocket();
82
- const successSocket = new SuccessSocket();
83
- const sockets = [connectionErrorSocket, successSocket];
84
- MercurySocketIoClient_1.default.io = function () {
85
- return sockets.shift();
86
- };
87
- const promise = this.connectToApi();
88
- await this.wait(1000);
89
- connectionErrorSocket.emitConnectionError();
90
- await this.wait(1000);
91
- successSocket.emitConnect();
92
- await promise;
93
- }
94
- static async canAddStatusChangeListener() {
95
- const { client, socket } = await this.connectWithEmittingSocket();
96
- const passedStatuses = [];
97
- await client.on('connection-status-change', ({ payload }) => {
98
- passedStatuses.push(payload.status);
99
- });
100
- this.patchMercuryEmitToThrow(client);
101
- socket.emitDisconnect();
102
- await this.wait(10);
103
- test_utils_1.assert.isEqualDeep(passedStatuses, ['disconnected', 'connecting']);
104
- }
105
- static async canAddMultipleStatusChangeListeners() {
106
- let { client, socket } = await this.connectWithEmittingSocket();
107
- let hitCount = 0;
108
- await client.on('connection-status-change', ({ payload }) => {
109
- if (payload.status === 'disconnected') {
110
- hitCount++;
111
- }
112
- });
113
- await client.on('connection-status-change', ({ payload }) => {
114
- if (payload.status === 'disconnected') {
115
- hitCount++;
116
- }
117
- });
118
- socket.emitDisconnect();
119
- await this.wait(10);
120
- test_utils_1.assert.isEqual(hitCount, 2);
121
- }
122
- static async emitsStatusChangeForAttemptingReconnect() {
123
- let { client } = await this.connectWithEmittingSocket();
124
- let passedStatuses = [];
125
- await client.on('connection-status-change', ({ payload }) => {
126
- passedStatuses.push(payload.status);
127
- });
128
- //@ts-ignore
129
- const promise = client.attemptReconnectAfterDelay(0);
130
- test_utils_1.assert.isEqualDeep(passedStatuses, ['disconnected']);
131
- await promise;
132
- test_utils_1.assert.isEqualDeep(passedStatuses, [
133
- 'disconnected',
134
- 'connecting',
135
- 'connected',
136
- ]);
137
- }
138
- static async emitRetriesTracksAccurately(retries) {
139
- const startingRetries = retries;
140
- const { client } = await this.connectWithEmittingSocket({
141
- connectionRetries: retries,
142
- });
143
- this.disableConnect();
144
- this.emitDisconnect();
145
- retries = await this.waitAndAssertRetriesDecrement(retries, client);
146
- this.emitConnectError();
147
- retries = await this.waitAndAssertRetriesDecrement(retries, client);
148
- this.emitConnectError();
149
- await this.waitAndAssertRetriesDecrement(retries, client);
150
- this.enableConnect();
151
- this.emitConnect();
152
- await this.wait(1000);
153
- test_utils_1.assert.isEqual(client.connectionRetriesRemaining, startingRetries);
154
- await client.disconnect();
155
- }
156
- static async emitsConnectAfterReconnectReRegisterProxyAndListeners() {
157
- const client = await this.connectAsProxySpy();
158
- const statuses = [];
159
- await client.on('connection-status-change', ({ payload }) => {
160
- statuses.push(payload.status);
161
- });
162
- client.setShouldRegisterProxyOnReconnect(true);
163
- await client.connect();
164
- test_utils_1.assert.isEqualDeep(statuses, ['connecting', 'connected']);
165
- client.connect = async () => { };
166
- client.registerProxyToken = async () => {
167
- statuses.push('proxy');
168
- };
169
- //@ts-ignore
170
- client.reRegisterAllListeners = async () => {
171
- statuses.push('listeners');
172
- };
173
- await client.reconnect(() => { }, () => { }, 10);
174
- test_utils_1.assert.isEqualDeep(statuses, [
175
- 'connecting',
176
- 'connected',
177
- 'proxy',
178
- 'listeners',
179
- 'connected',
180
- ]);
181
- }
182
- static async onlyEmitsConnectedOnceWhenReconnecting() {
183
- const { client } = await this.connectWithEmittingSocket({
184
- reconnectDelayMs: 10,
185
- connectionRetries: 99,
186
- });
187
- let statuses = [];
188
- await this.disableConnectAndSendMultipleConnectErrors();
189
- await client.on('connection-status-change', ({ payload }) => {
190
- statuses.push(payload.status);
191
- });
192
- let authCount = 0;
193
- //@ts-ignore
194
- client.lastAuthOptions = true;
195
- //@ts-ignore
196
- client.authenticate = async () => {
197
- authCount++;
198
- };
199
- await this.enableAndEmitConnect();
200
- test_utils_1.assert.isEqualDeep(statuses, ['connected']);
201
- await this.disableConnectAndSendMultipleConnectErrors();
202
- statuses = [];
203
- await this.enableAndEmitConnect();
204
- test_utils_1.assert.isEqualDeep(statuses, ['connected']);
205
- test_utils_1.assert.isEqual(authCount, 2);
206
- }
207
- static async enableAndEmitConnect() {
208
- this.enableConnect();
209
- this.emitConnect();
210
- await this.wait(1000);
211
- }
212
- static async disableConnectAndSendMultipleConnectErrors() {
213
- this.disableConnect();
214
- this.emitDisconnect();
215
- await this.wait(10);
216
- this.emitConnectError();
217
- await this.wait(10);
218
- this.emitConnectError();
219
- await this.wait(10);
220
- this.emitConnectError();
221
- await this.wait(10);
222
- this.emitConnectError();
223
- await this.wait(10);
224
- }
225
- static async connectAsProxySpy() {
226
- MercuryClientFactory_1.default.ClientClass = ProxySpyClient;
227
- const client = (await this.connectToApi());
228
- return client;
229
- }
230
- static emitConnect() {
231
- this.lastSocket?.emitConnect();
232
- }
233
- static enableConnect() {
234
- this.lastSocket?.enableConnect();
235
- }
236
- static emitConnectError() {
237
- this.lastSocket?.emitConnectionError();
238
- }
239
- static emitDisconnect() {
240
- this.lastSocket?.emitDisconnect();
241
- }
242
- static disableConnect() {
243
- this.lastSocket?.disableConnect();
244
- }
245
- static async waitAndAssertRetriesDecrement(retries, client) {
246
- await this.wait(100);
247
- retries--;
248
- test_utils_1.assert.isEqual(client.connectionRetriesRemaining, retries);
249
- return retries;
250
- }
251
- static async connectWithEmittingSocket(options) {
252
- MercurySocketIoClient_1.default.io = ((options, args) => {
253
- this.lastSocket = new ReservedEmittingSocket(options, args);
254
- setTimeout(() => this.lastSocket?.emitConnect(), 1);
255
- return this.lastSocket;
256
- });
257
- const client = (await this.connectToApi({
258
- shouldReconnect: true,
259
- ...options,
260
- }));
261
- test_utils_1.assert.isTruthy(this.lastSocket);
262
- return { client, socket: this.lastSocket };
263
- }
264
- static async ClientZeroDelay() {
265
- return await this.connectToApi({ reconnectDelayMs: 0 });
266
- }
267
- static async assertRetriesEmitOnDisconnect() {
268
- const client = await this.ClientZeroDelay();
269
- const promise = client.emit('whoami::v2020_12_25');
270
- await this.wait(1000);
271
- //@ts-ignore
272
- client.socket.disconnect();
273
- await this.wait(100);
274
- const results = await promise;
275
- spruce_event_utils_1.eventResponseUtil.getFirstResponseOrThrow(results);
276
- }
277
- static patchMercuryEmitToThrow(client) {
278
- //@ts-ignore
279
- client._emit = () => {
280
- test_utils_1.assert.fail('should not be called on local events');
281
- };
282
- }
283
- }
284
- exports.default = ReconnectingAutomaticallyTest;
285
- __decorate([
286
- (0, test_utils_1.test)()
287
- ], ReconnectingAutomaticallyTest, "invokesReconnectAfterDelayWhenConnectionLost", null);
288
- __decorate([
289
- (0, test_utils_1.test)()
290
- ], ReconnectingAutomaticallyTest, "reconnectsWhenEmittingEventWhenDisconnected", null);
291
- __decorate([
292
- (0, test_utils_1.test)()
293
- ], ReconnectingAutomaticallyTest, "shouldThrowWhenEmittingAfterManualDisconnect", null);
294
- __decorate([
295
- (0, test_utils_1.test)()
296
- ], ReconnectingAutomaticallyTest, "retriesEventIfItFailsAfterTimeout", null);
297
- __decorate([
298
- (0, test_utils_1.test)()
299
- ], ReconnectingAutomaticallyTest, "retriesEventIfItFailsAfterTimeoutWithTestClient", null);
300
- __decorate([
301
- test_utils_1.test.skip('when you have some strength, bring this back and fix')
302
- ], ReconnectingAutomaticallyTest, "timingOutDuringAuthDoesntThrowAuthBlockedError", null);
303
- __decorate([
304
- (0, test_utils_1.test)()
305
- ], ReconnectingAutomaticallyTest, "manuallyDisconnectStopsReconnectAttempts", null);
306
- __decorate([
307
- (0, test_utils_1.test)('can set connection retries 1', 1),
308
- (0, test_utils_1.test)('can set connection retries 2', 2)
309
- ], ReconnectingAutomaticallyTest, "canSetConnectionRetries", null);
310
- __decorate([
311
- (0, test_utils_1.test)()
312
- ], ReconnectingAutomaticallyTest, "failingToConnectAtFirstReturnsClientFromOriginalConnection", null);
313
- __decorate([
314
- (0, test_utils_1.test)()
315
- ], ReconnectingAutomaticallyTest, "canAddStatusChangeListener", null);
316
- __decorate([
317
- (0, test_utils_1.test)()
318
- ], ReconnectingAutomaticallyTest, "canAddMultipleStatusChangeListeners", null);
319
- __decorate([
320
- (0, test_utils_1.test)()
321
- ], ReconnectingAutomaticallyTest, "emitsStatusChangeForAttemptingReconnect", null);
322
- __decorate([
323
- (0, test_utils_1.test)('retrying to connect emits status change', 10)
324
- ], ReconnectingAutomaticallyTest, "emitRetriesTracksAccurately", null);
325
- __decorate([
326
- (0, test_utils_1.test)()
327
- ], ReconnectingAutomaticallyTest, "emitsConnectAfterReconnectReRegisterProxyAndListeners", null);
328
- __decorate([
329
- (0, test_utils_1.test)()
330
- ], ReconnectingAutomaticallyTest, "onlyEmitsConnectedOnceWhenReconnecting", null);
331
- class ConnectionErrorSocket extends socket_io_client_1.Socket {
332
- constructor() {
333
- super({}, {});
334
- }
335
- connect() {
336
- return this;
337
- }
338
- emitConnectionError() {
339
- this.emitReserved('connect_error', new Error('fail'));
340
- }
341
- }
342
- class SuccessSocket extends socket_io_client_1.Socket {
343
- constructor() {
344
- super({}, {});
345
- }
346
- connect() {
347
- return this;
348
- }
349
- emitConnect() {
350
- this.emitReserved('connect');
351
- }
352
- }
353
- class ReservedEmittingSocket extends socket_io_client_1.Socket {
354
- constructor(options, args) {
355
- super(options, args);
356
- }
357
- connect() {
358
- return this;
359
- }
360
- disableConnect() {
361
- ReservedEmittingSocket.shouldAllowConnect = false;
362
- }
363
- enableConnect() {
364
- ReservedEmittingSocket.shouldAllowConnect = true;
365
- }
366
- emitReserved(event, ...args) {
367
- if (event === 'connect' && !ReservedEmittingSocket.shouldAllowConnect) {
368
- return this;
369
- }
370
- return super.emitReserved(event, ...args);
371
- }
372
- emitConnectionError() {
373
- this.emitReserved('connect_error', new Error('connection error'));
374
- }
375
- emitConnect() {
376
- this.emitReserved('connect');
377
- }
378
- emitDisconnect() {
379
- this.emitReserved('disconnect', 'io client disconnect');
380
- }
381
- }
382
- ReservedEmittingSocket.shouldAllowConnect = true;
383
- class ProxySpyClient extends MutableContractClient_1.default {
384
- setShouldRegisterProxyOnReconnect(should) {
385
- this.shouldRegisterProxyOnReconnect = should;
386
- }
387
- async reconnect(resolve, reject, retriesLeft) {
388
- return super.reconnect(resolve, reject, retriesLeft);
389
- }
390
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReconnectingAutomatically.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/ReconnectingAutomatically.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import AbstractClientTest from '../../tests/AbstractClientTest';
2
- export default class RequiringLocalListenersTest extends AbstractClientTest {
3
- protected static beforeEach(): Promise<void>;
4
- protected static canCreateDisablingRemoteCalls(): Promise<void>;
5
- protected static knowsIfLocalListenersRequired(): Promise<void>;
6
- protected static canDisableLocalListenersEvenIfSetToListenerForNamespace(): Promise<void>;
7
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const test_utils_1 = require("@sprucelabs/test-utils");
13
- const test_utils_2 = require("@sprucelabs/test-utils");
14
- const MercuryClientFactory_1 = __importDefault(require("../../clients/MercuryClientFactory"));
15
- const MercuryTestClient_1 = __importDefault(require("../../clients/MercuryTestClient"));
16
- const AbstractClientTest_1 = __importDefault(require("../../tests/AbstractClientTest"));
17
- class RequiringLocalListenersTest extends AbstractClientTest_1.default {
18
- static async beforeEach() {
19
- await super.beforeEach();
20
- MercuryClientFactory_1.default.setIsTestMode(true);
21
- MercuryTestClient_1.default.setShouldRequireLocalListeners(false);
22
- }
23
- static async canCreateDisablingRemoteCalls() {
24
- MercuryTestClient_1.default.setShouldRequireLocalListeners(true);
25
- const client = await this.connectToApi();
26
- const err = await test_utils_1.assert.doesThrowAsync(() => client.emit('whoami::v2020_12_25'));
27
- test_utils_2.errorAssert.assertError(err, 'MUST_HANDLE_LOCALLY');
28
- const client2 = await this.connectToApi();
29
- await client2.on('whoami::v2020_12_25', () => {
30
- return {
31
- auth: {},
32
- type: 'anonymous',
33
- };
34
- });
35
- await client.emit('whoami::v2020_12_25');
36
- }
37
- static async knowsIfLocalListenersRequired() {
38
- test_utils_1.assert.isFalse(MercuryTestClient_1.default.getShouldRequireLocalListeners());
39
- MercuryTestClient_1.default.setShouldRequireLocalListeners(true);
40
- test_utils_1.assert.isTrue(MercuryTestClient_1.default.getShouldRequireLocalListeners());
41
- }
42
- static async canDisableLocalListenersEvenIfSetToListenerForNamespace() {
43
- MercuryTestClient_1.default.setNamespacesThatMustBeHandledLocally(['lumena']);
44
- MercuryTestClient_1.default.setShouldRequireLocalListeners(false);
45
- const client = (await this.connectToApi());
46
- client.mixinContract({
47
- eventSignatures: {
48
- 'lumena.test': {
49
- isGlobal: true,
50
- },
51
- },
52
- });
53
- await client.emitAndFlattenResponses('lumena.test');
54
- }
55
- }
56
- exports.default = RequiringLocalListenersTest;
57
- __decorate([
58
- (0, test_utils_1.test)()
59
- ], RequiringLocalListenersTest, "canCreateDisablingRemoteCalls", null);
60
- __decorate([
61
- (0, test_utils_1.test)()
62
- ], RequiringLocalListenersTest, "knowsIfLocalListenersRequired", null);
63
- __decorate([
64
- (0, test_utils_1.test)()
65
- ], RequiringLocalListenersTest, "canDisableLocalListenersEvenIfSetToListenerForNamespace", null);
@@ -1 +0,0 @@
1
- {"version":3,"file":"RequiringLocalListeners.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/RequiringLocalListeners.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAqD;AACrD,uDAAoD;AACpD,8FAAqE;AACrE,wFAA+D;AAC/D,wFAA+D;AAE/D,MAAqB,2BAA4B,SAAQ,4BAAkB;IAC7D,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,8BAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACxC,2BAAiB,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAA;IAC3D,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B;QAChD,2BAAiB,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAA;QAEtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAExC,MAAM,GAAG,GAAG,MAAM,mBAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CACzC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CACrC,CAAA;QAED,wBAAW,CAAC,WAAW,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;QAEnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzC,MAAM,OAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACzC,OAAO;gBACH,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,WAAoB;aAC7B,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B;QAChD,mBAAM,CAAC,OAAO,CAAC,2BAAiB,CAAC,8BAA8B,EAAE,CAAC,CAAA;QAClE,2BAAiB,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAA;QACtD,mBAAM,CAAC,MAAM,CAAC,2BAAiB,CAAC,8BAA8B,EAAE,CAAC,CAAA;IACrE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,uDAAuD;QAC1E,2BAAiB,CAAC,qCAAqC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QACnE,2BAAiB,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAsB,CAAA;QAC/D,MAAM,CAAC,aAAa,CAAC;YACjB,eAAe,EAAE;gBACb,aAAa,EAAE;oBACX,QAAQ,EAAE,IAAI;iBACjB;aACJ;SACJ,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,uBAAuB,CAAC,aAAoB,CAAC,CAAA;IAC9D,CAAC;CACJ;AArDD,8CAqDC;AA7C0B;IADtB,IAAA,iBAAI,GAAE;sEAsBN;AAGsB;IADtB,IAAA,iBAAI,GAAE;sEAKN;AAGsB;IADtB,IAAA,iBAAI,GAAE;gGAcN"}
@@ -1,9 +0,0 @@
1
- import AbstractClientTest from '../../tests/AbstractClientTest';
2
- export default class SettingNamespacesThatMustBeHandledLocallyTest extends AbstractClientTest {
3
- protected static beforeEach(): Promise<void>;
4
- protected static canSetNamespaceThatMustBeHandledLocally(namespaces: string[], fqen: string): Promise<void>;
5
- protected static niceErrorForUnhandledEvent(): Promise<void>;
6
- protected static settingALocalListenerDoesntThrow(): Promise<void>;
7
- private static setNamespacesAndConnect;
8
- private static TestClient;
9
- }