@amityco/ts-sdk 0.0.1-ce7eebc.0 → 0.0.1-ce96c83.0

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 (121) hide show
  1. package/dist/cache/api/tests/enableCache.test.d.ts +2 -0
  2. package/dist/cache/api/tests/enableCache.test.d.ts.map +1 -0
  3. package/dist/channel/events/tests/onChannelCreated.test.d.ts +2 -0
  4. package/dist/channel/events/tests/onChannelCreated.test.d.ts.map +1 -0
  5. package/dist/channel/events/tests/onChannelJoined.test.d.ts +2 -0
  6. package/dist/channel/events/tests/onChannelJoined.test.d.ts.map +1 -0
  7. package/dist/channel/events/tests/onChannelMemberAdded.test.d.ts +2 -0
  8. package/dist/channel/events/tests/onChannelMemberAdded.test.d.ts.map +1 -0
  9. package/dist/channel/events/tests/onChannelMemberRemoved.test.d.ts +2 -0
  10. package/dist/channel/events/tests/onChannelMemberRemoved.test.d.ts.map +1 -0
  11. package/dist/channel/events/tests/onChannelUpdated.test.d.ts +2 -0
  12. package/dist/channel/events/tests/onChannelUpdated.test.d.ts.map +1 -0
  13. package/dist/client/api/tests/createClient.test.d.ts +2 -0
  14. package/dist/client/api/tests/createClient.test.d.ts.map +1 -0
  15. package/dist/community/api/queryCommunities.d.ts.map +1 -1
  16. package/dist/community/api/test/addCommunityMember.test.d.ts +2 -0
  17. package/dist/community/api/test/addCommunityMember.test.d.ts.map +1 -0
  18. package/dist/community/api/test/addCommunityMemberRole.test.d.ts +2 -0
  19. package/dist/community/api/test/addCommunityMemberRole.test.d.ts.map +1 -0
  20. package/dist/community/api/test/createCommunity.test.d.ts +2 -0
  21. package/dist/community/api/test/createCommunity.test.d.ts.map +1 -0
  22. package/dist/community/api/test/deleteCommunity.test.d.ts +2 -0
  23. package/dist/community/api/test/deleteCommunity.test.d.ts.map +1 -0
  24. package/dist/community/api/test/getCommunities.test.d.ts +2 -0
  25. package/dist/community/api/test/getCommunities.test.d.ts.map +1 -0
  26. package/dist/community/api/test/getCommunity.test.d.ts +2 -0
  27. package/dist/community/api/test/getCommunity.test.d.ts.map +1 -0
  28. package/dist/community/api/test/getRecommendedCommunities.test.d.ts +2 -0
  29. package/dist/community/api/test/getRecommendedCommunities.test.d.ts.map +1 -0
  30. package/dist/community/api/test/getTopTrendingCommunities.test.d.ts +2 -0
  31. package/dist/community/api/test/getTopTrendingCommunities.test.d.ts.map +1 -0
  32. package/dist/community/api/test/joinCommunity.test.d.ts +2 -0
  33. package/dist/community/api/test/joinCommunity.test.d.ts.map +1 -0
  34. package/dist/community/api/test/leaveCommunity.test.d.ts +2 -0
  35. package/dist/community/api/test/leaveCommunity.test.d.ts.map +1 -0
  36. package/dist/community/api/test/queryCommunity.test.d.ts +2 -0
  37. package/dist/community/api/test/queryCommunity.test.d.ts.map +1 -0
  38. package/dist/community/api/test/removeCommunityMemberRole.test.d.ts +2 -0
  39. package/dist/community/api/test/removeCommunityMemberRole.test.d.ts.map +1 -0
  40. package/dist/community/api/test/removeCommunityMembers.test.d.ts +2 -0
  41. package/dist/community/api/test/removeCommunityMembers.test.d.ts.map +1 -0
  42. package/dist/community/api/test/updateCommunity.test.d.ts +2 -0
  43. package/dist/community/api/test/updateCommunity.test.d.ts.map +1 -0
  44. package/dist/community/events/test/onCommunityCreated.test.d.ts +2 -0
  45. package/dist/community/events/test/onCommunityCreated.test.d.ts.map +1 -0
  46. package/dist/community/events/test/onCommunityDeleted.test.d.ts +2 -0
  47. package/dist/community/events/test/onCommunityDeleted.test.d.ts.map +1 -0
  48. package/dist/community/events/test/onCommunityJoined.test.d.ts +2 -0
  49. package/dist/community/events/test/onCommunityJoined.test.d.ts.map +1 -0
  50. package/dist/community/events/test/onCommunityLeft.test.d.ts +2 -0
  51. package/dist/community/events/test/onCommunityLeft.test.d.ts.map +1 -0
  52. package/dist/community/events/test/onCommunityUpdated.test.d.ts +2 -0
  53. package/dist/community/events/test/onCommunityUpdated.test.d.ts.map +1 -0
  54. package/dist/community/events/test/onCommunityUserAdded.test.d.ts +2 -0
  55. package/dist/community/events/test/onCommunityUserAdded.test.d.ts.map +1 -0
  56. package/dist/community/events/test/onCommunityUserBanned.test.d.ts +2 -0
  57. package/dist/community/events/test/onCommunityUserBanned.test.d.ts.map +1 -0
  58. package/dist/community/events/test/onCommunityUserRemoved.test.d.ts +2 -0
  59. package/dist/community/events/test/onCommunityUserRemoved.test.d.ts.map +1 -0
  60. package/dist/community/events/test/onCommunityUserUnbaned.test.d.ts +2 -0
  61. package/dist/community/events/test/onCommunityUserUnbaned.test.d.ts.map +1 -0
  62. package/dist/community/events/test/utils.test.d.ts +2 -0
  63. package/dist/community/events/test/utils.test.d.ts.map +1 -0
  64. package/dist/index.cjs.js +6 -3
  65. package/dist/index.esm.js +6 -3
  66. package/dist/index.umd.js +1 -1
  67. package/dist/post/events/tests/onPostFlagged.test.d.ts +2 -0
  68. package/dist/post/events/tests/onPostFlagged.test.d.ts.map +1 -0
  69. package/dist/post/events/tests/onPostReactionAdded.test.d.ts +2 -0
  70. package/dist/post/events/tests/onPostReactionAdded.test.d.ts.map +1 -0
  71. package/dist/post/events/tests/onPostReactionRemoved.test.d.ts +2 -0
  72. package/dist/post/events/tests/onPostReactionRemoved.test.d.ts.map +1 -0
  73. package/dist/post/events/tests/onPostUnflagged.test.d.ts +2 -0
  74. package/dist/post/events/tests/onPostUnflagged.test.d.ts.map +1 -0
  75. package/dist/post/events/tests/onPostUpdated.test.d.ts +2 -0
  76. package/dist/post/events/tests/onPostUpdated.test.d.ts.map +1 -0
  77. package/dist/post/observers/livePosts.d.ts.map +1 -1
  78. package/dist/utils/tests/dummy/community.d.ts +2 -0
  79. package/dist/utils/tests/dummy/community.d.ts.map +1 -1
  80. package/package.json +1 -1
  81. package/src/cache/api/tests/enableCache.test.ts +15 -0
  82. package/src/channel/events/tests/onChannelCreated.test.ts +60 -0
  83. package/src/channel/events/tests/onChannelJoined.test.ts +60 -0
  84. package/src/channel/events/tests/onChannelMemberAdded.test.ts +59 -0
  85. package/src/channel/events/tests/onChannelMemberRemoved.test.ts +59 -0
  86. package/src/channel/events/tests/onChannelUpdated.test.ts +58 -0
  87. package/src/client/api/createClient.ts +1 -1
  88. package/src/client/api/tests/createClient.test.ts +40 -0
  89. package/src/community/api/queryCommunities.ts +3 -2
  90. package/src/community/api/test/addCommunityMember.test.ts +71 -0
  91. package/src/community/api/test/addCommunityMemberRole.test.ts +67 -0
  92. package/src/community/api/test/createCommunity.test.ts +61 -0
  93. package/src/community/api/test/deleteCommunity.test.ts +74 -0
  94. package/src/community/api/test/getCommunities.test.ts +73 -0
  95. package/src/community/api/test/getCommunity.test.ts +69 -0
  96. package/src/community/api/test/getRecommendedCommunities.test.ts +102 -0
  97. package/src/community/api/test/getTopTrendingCommunities.test.ts +102 -0
  98. package/src/community/api/test/joinCommunity.test.ts +70 -0
  99. package/src/community/api/test/leaveCommunity.test.ts +78 -0
  100. package/src/community/api/test/queryCommunity.test.ts +108 -0
  101. package/src/community/api/test/removeCommunityMemberRole.test.ts +67 -0
  102. package/src/community/api/test/removeCommunityMembers.test.ts +75 -0
  103. package/src/community/api/test/updateCommunity.test.ts +65 -0
  104. package/src/community/events/test/onCommunityCreated.test.ts +46 -0
  105. package/src/community/events/test/onCommunityDeleted.test.ts +35 -0
  106. package/src/community/events/test/onCommunityJoined.test.ts +50 -0
  107. package/src/community/events/test/onCommunityLeft.test.ts +50 -0
  108. package/src/community/events/test/onCommunityUpdated.test.ts +49 -0
  109. package/src/community/events/test/onCommunityUserAdded.test.ts +50 -0
  110. package/src/community/events/test/onCommunityUserBanned.test.ts +50 -0
  111. package/src/community/events/test/onCommunityUserRemoved.test.ts +50 -0
  112. package/src/community/events/test/onCommunityUserUnbaned.test.ts +50 -0
  113. package/src/community/events/test/utils.test.ts +158 -0
  114. package/src/post/events/tests/onPostFlagged.test.ts +33 -0
  115. package/src/post/events/tests/onPostReactionAdded.test.ts +40 -0
  116. package/src/post/events/tests/onPostReactionRemoved.test.ts +40 -0
  117. package/src/post/events/tests/onPostUnflagged.test.ts +33 -0
  118. package/src/post/events/tests/onPostUpdated.test.ts +33 -0
  119. package/src/post/observers/livePosts.ts +3 -0
  120. package/src/post/observers/tests/livePosts.test.ts +24 -0
  121. package/src/utils/tests/dummy/community.ts +17 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=onPostFlagged.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPostFlagged.test.d.ts","sourceRoot":"","sources":["../../../../src/post/events/tests/onPostFlagged.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=onPostReactionAdded.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPostReactionAdded.test.d.ts","sourceRoot":"","sources":["../../../../src/post/events/tests/onPostReactionAdded.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=onPostReactionRemoved.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPostReactionRemoved.test.d.ts","sourceRoot":"","sources":["../../../../src/post/events/tests/onPostReactionRemoved.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=onPostUnflagged.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPostUnflagged.test.d.ts","sourceRoot":"","sources":["../../../../src/post/events/tests/onPostUnflagged.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=onPostUpdated.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPostUpdated.test.d.ts","sourceRoot":"","sources":["../../../../src/post/events/tests/onPostUpdated.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"livePosts.d.ts","sourceRoot":"","sources":["../../../src/post/observers/livePosts.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,WACZ,MAAM,kBAAkB,YACtB,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,KAClC,MAAM,YA4HR,CAAC"}
1
+ {"version":3,"file":"livePosts.d.ts","sourceRoot":"","sources":["../../../src/post/observers/livePosts.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,WACZ,MAAM,kBAAkB,YACtB,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,KAClC,MAAM,YA+HR,CAAC"}
@@ -1,7 +1,9 @@
1
1
  export declare const baseCommunity: Amity.Community;
2
2
  export declare const community11: Amity.Community;
3
+ export declare const community21: Amity.Community;
3
4
  export declare const communityUser11: Amity.MembershipRaw<'community'>;
4
5
  export declare const communityUser12: Amity.MembershipRaw<'community'>;
6
+ export declare const communityUser21: Amity.MembershipRaw<'community'>;
5
7
  export declare const communityPayload: Amity.CommunityPayload;
6
8
  export declare const communityUserQueryResponse: {
7
9
  data: {
@@ -1 +1 @@
1
- {"version":3,"file":"community.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/community.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,SAYjC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,SAoB/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAa5D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAO5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,gBAKpC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CAUtC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;GAG9B,CAAC"}
1
+ {"version":3,"file":"community.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/community.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,SAajC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,SAoB/B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,SAI/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAa5D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAO5D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAK5D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,gBAKpC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CAUtC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;GAG9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "0.0.1-ce7eebc.0",
3
+ "version": "0.0.1-ce96c83.0",
4
4
  "license": "CC-BY-ND-4.0",
5
5
  "author": "amity.co <developers@amity.co> (https://amity.co)",
6
6
  "description": "Amity Social Cloud Typescript SDK",
@@ -0,0 +1,15 @@
1
+ import { connectClient, client, disconnectClient } from '~/utils/tests';
2
+
3
+ import { enableCache } from '../enableCache';
4
+
5
+ describe('enableCache', () => {
6
+ test('it should enable cache', async () => {
7
+ await connectClient();
8
+
9
+ enableCache();
10
+
11
+ expect(client.cache).toBeDefined();
12
+
13
+ disconnectClient();
14
+ });
15
+ });
@@ -0,0 +1,60 @@
1
+ import { disableCache, enableCache } from '~/cache/api';
2
+
3
+ import {
4
+ client,
5
+ connectClient,
6
+ disconnectClient,
7
+ channel11,
8
+ channelUser1,
9
+ channelUser5,
10
+ user11,
11
+ user13,
12
+ } from '~/utils/tests';
13
+
14
+ import { onChannelCreated } from '../onChannelCreated';
15
+
16
+ describe('onChannelCreated event', () => {
17
+ beforeAll(async () => {
18
+ await connectClient();
19
+ });
20
+
21
+ afterAll(async () => {
22
+ await disconnectClient();
23
+ });
24
+
25
+ beforeEach(async () => {
26
+ enableCache();
27
+ });
28
+
29
+ afterEach(disableCache);
30
+
31
+ const channelPayload: Amity.ChannelMembershipPayload = {
32
+ channelUsers: [channelUser1, channelUser5],
33
+ channels: [channel11],
34
+ files: [],
35
+ users: [user11, user13],
36
+ };
37
+
38
+ test('it should call callback when channel have created', () => {
39
+ const callback = jest.fn();
40
+
41
+ const unsub = onChannelCreated(callback);
42
+ client.emitter.emit('v3.channel.didCreate', channelPayload);
43
+
44
+ unsub();
45
+
46
+ expect(callback).toHaveBeenCalled();
47
+ expect(callback).toHaveBeenCalledWith(channel11);
48
+ });
49
+
50
+ test('it should return an unsubscriber', () => {
51
+ const callback = jest.fn();
52
+
53
+ const unsub = onChannelCreated(callback);
54
+ unsub();
55
+
56
+ client.emitter.emit('v3.channel.didCreate', channelPayload);
57
+
58
+ expect(callback).not.toHaveBeenCalled();
59
+ });
60
+ });
@@ -0,0 +1,60 @@
1
+ import { disableCache, enableCache } from '~/cache/api';
2
+
3
+ import {
4
+ client,
5
+ connectClient,
6
+ disconnectClient,
7
+ channel11,
8
+ channelUser1,
9
+ channelUser5,
10
+ user11,
11
+ user13,
12
+ } from '~/utils/tests';
13
+
14
+ import { onChannelJoined } from '../onChannelJoined';
15
+
16
+ describe('onChannelJoined event', () => {
17
+ beforeAll(async () => {
18
+ await connectClient();
19
+ });
20
+
21
+ afterAll(async () => {
22
+ await disconnectClient();
23
+ });
24
+
25
+ beforeEach(async () => {
26
+ enableCache();
27
+ });
28
+
29
+ afterEach(disableCache);
30
+
31
+ const channelPayload: Amity.ChannelMembershipPayload = {
32
+ channelUsers: [channelUser1, channelUser5],
33
+ channels: [channel11],
34
+ files: [],
35
+ users: [user11, user13],
36
+ };
37
+
38
+ test('it should call callback when have someone joined channel', () => {
39
+ const callback = jest.fn();
40
+
41
+ const unsub = onChannelJoined(callback);
42
+ client.emitter.emit('v3.channel.didJoin', channelPayload);
43
+
44
+ unsub();
45
+
46
+ expect(callback).toHaveBeenCalled();
47
+ expect(callback).toHaveBeenCalledWith(channel11);
48
+ });
49
+
50
+ test('it should return an unsubscriber', () => {
51
+ const callback = jest.fn();
52
+
53
+ const unsub = onChannelJoined(callback);
54
+ unsub();
55
+
56
+ client.emitter.emit('v3.channel.didJoin', channelPayload);
57
+
58
+ expect(callback).not.toHaveBeenCalled();
59
+ });
60
+ });
@@ -0,0 +1,59 @@
1
+ import { disableCache, enableCache } from '~/cache/api';
2
+
3
+ import {
4
+ client,
5
+ connectClient,
6
+ disconnectClient,
7
+ channel11,
8
+ channelUser1,
9
+ user11,
10
+ user13,
11
+ } from '~/utils/tests';
12
+
13
+ import { onChannelMemberAdded } from '../onChannelMemberAdded';
14
+
15
+ describe('onChannelMemberAdded event', () => {
16
+ beforeAll(async () => {
17
+ await connectClient();
18
+ });
19
+
20
+ afterAll(async () => {
21
+ await disconnectClient();
22
+ });
23
+
24
+ beforeEach(async () => {
25
+ enableCache();
26
+ });
27
+
28
+ afterEach(disableCache);
29
+
30
+ const channelPayload: Amity.ChannelMembershipPayload = {
31
+ channelUsers: [channelUser1],
32
+ channels: [channel11],
33
+ files: [],
34
+ users: [user11],
35
+ };
36
+
37
+ test('it should call callback when have someone add member to channel', () => {
38
+ const callback = jest.fn();
39
+
40
+ const unsub = onChannelMemberAdded(callback);
41
+ client.emitter.emit('v3.channel.didAddUsers', channelPayload);
42
+
43
+ unsub();
44
+
45
+ expect(callback).toHaveBeenCalled();
46
+ expect(callback).toHaveBeenCalledWith(channel11, { ...channelUser1, user: user11 });
47
+ });
48
+
49
+ test('it should return an unsubscriber', () => {
50
+ const callback = jest.fn();
51
+
52
+ const unsub = onChannelMemberAdded(callback);
53
+ unsub();
54
+
55
+ client.emitter.emit('v3.channel.didAddUsers', channelPayload);
56
+
57
+ expect(callback).not.toHaveBeenCalled();
58
+ });
59
+ });
@@ -0,0 +1,59 @@
1
+ import { disableCache, enableCache } from '~/cache/api';
2
+
3
+ import {
4
+ client,
5
+ connectClient,
6
+ disconnectClient,
7
+ channel11,
8
+ channelUser1,
9
+ user11,
10
+ user13,
11
+ } from '~/utils/tests';
12
+
13
+ import { onChannelMemberRemoved } from '../onChannelMemberRemoved';
14
+
15
+ describe('onChannelMemberRemoved event', () => {
16
+ beforeAll(async () => {
17
+ await connectClient();
18
+ });
19
+
20
+ afterAll(async () => {
21
+ await disconnectClient();
22
+ });
23
+
24
+ beforeEach(async () => {
25
+ enableCache();
26
+ });
27
+
28
+ afterEach(disableCache);
29
+
30
+ const channelPayload: Amity.ChannelMembershipPayload = {
31
+ channelUsers: [channelUser1],
32
+ channels: [channel11],
33
+ files: [],
34
+ users: [user11],
35
+ };
36
+
37
+ test('it should call callback when have someone remove member from channel', () => {
38
+ const callback = jest.fn();
39
+
40
+ const unsub = onChannelMemberRemoved(callback);
41
+ client.emitter.emit('v3.channel.didRemoveUsers', channelPayload);
42
+
43
+ unsub();
44
+
45
+ expect(callback).toHaveBeenCalled();
46
+ expect(callback).toHaveBeenCalledWith(channel11, { ...channelUser1, user: user11 });
47
+ });
48
+
49
+ test('it should return an unsubscriber', () => {
50
+ const callback = jest.fn();
51
+
52
+ const unsub = onChannelMemberRemoved(callback);
53
+ unsub();
54
+
55
+ client.emitter.emit('v3.channel.didRemoveUsers', channelPayload);
56
+
57
+ expect(callback).not.toHaveBeenCalled();
58
+ });
59
+ });
@@ -0,0 +1,58 @@
1
+ import { disableCache, enableCache } from '~/cache/api';
2
+
3
+ import {
4
+ client,
5
+ connectClient,
6
+ disconnectClient,
7
+ channel11,
8
+ channelUser1,
9
+ user11,
10
+ } from '~/utils/tests';
11
+
12
+ import { onChannelUpdated } from '../onChannelUpdated';
13
+
14
+ describe('onChannelUpdated event', () => {
15
+ beforeAll(async () => {
16
+ await connectClient();
17
+ });
18
+
19
+ afterAll(async () => {
20
+ await disconnectClient();
21
+ });
22
+
23
+ beforeEach(async () => {
24
+ enableCache();
25
+ });
26
+
27
+ afterEach(disableCache);
28
+
29
+ const channelPayload: Amity.ChannelMembershipPayload = {
30
+ channelUsers: [channelUser1],
31
+ channels: [channel11],
32
+ files: [],
33
+ users: [user11],
34
+ };
35
+
36
+ test('it should call callback when channel have updated', () => {
37
+ const callback = jest.fn();
38
+
39
+ const unsub = onChannelUpdated(callback);
40
+ client.emitter.emit('v3.channel.didUpdate', channelPayload);
41
+
42
+ unsub();
43
+
44
+ expect(callback).toHaveBeenCalled();
45
+ expect(callback).toHaveBeenCalledWith(channel11);
46
+ });
47
+
48
+ test('it should return an unsubscriber', () => {
49
+ const callback = jest.fn();
50
+
51
+ const unsub = onChannelUpdated(callback);
52
+ unsub();
53
+
54
+ client.emitter.emit('v3.channel.didUpdate', channelPayload);
55
+
56
+ expect(callback).not.toHaveBeenCalled();
57
+ });
58
+ });
@@ -74,7 +74,7 @@ export const createClient = (
74
74
  };
75
75
 
76
76
  try {
77
- getActiveClient();
77
+ return getActiveClient();
78
78
  } catch {
79
79
  setActiveClient(client);
80
80
  }
@@ -0,0 +1,40 @@
1
+ import { createClient } from '../createClient';
2
+
3
+ describe('createClient', () => {
4
+ test('it should create client', () => {
5
+ const client = createClient('test-api-key');
6
+
7
+ expect(client).toBeDefined();
8
+ });
9
+
10
+ test('it should define http transport', () => {
11
+ const client = createClient('test-api-key');
12
+
13
+ expect(client.http).toBeDefined();
14
+ });
15
+
16
+ test('it should define ws transport', () => {
17
+ const client = createClient('test-api-key');
18
+
19
+ expect(client.ws).toBeDefined();
20
+ });
21
+
22
+ test('it should define mqtt transport', () => {
23
+ const client = createClient('test-api-key');
24
+
25
+ expect(client.mqtt).toBeDefined();
26
+ });
27
+
28
+ test('it should define event emitter', () => {
29
+ const client = createClient('test-api-key');
30
+
31
+ expect(client.emitter).toBeDefined();
32
+ });
33
+
34
+ test('it should return existing client if there is one', () => {
35
+ const expected = createClient('test-api-key');
36
+ const recieved = createClient('test-api-key');
37
+
38
+ expect(recieved).toStrictEqual(expected);
39
+ });
40
+ });
@@ -36,7 +36,8 @@ export const queryCommunities = async (query?: {
36
36
  client.log('channel/queryCommunities', query);
37
37
 
38
38
  // safe decapsulation
39
- const { page, displayName, membership, ...params } = query ?? {};
39
+ const { page, ...params } = query ?? {};
40
+ const { displayName, membership, ...restParams } = params ?? {};
40
41
 
41
42
  // API-FIX: parameters should be querystring.
42
43
  // API-FIX: backend doesnt answer Amity.Response
@@ -45,7 +46,7 @@ export const queryCommunities = async (query?: {
45
46
  `/api/v3/communities`,
46
47
  {
47
48
  params: {
48
- ...params,
49
+ ...restParams,
49
50
  keyword: displayName,
50
51
  filter: membership,
51
52
  options: {
@@ -0,0 +1,71 @@
1
+ import { disableCache, enableCache, pullFromCache } from '~/cache/api';
2
+ import { getResolver } from '~/core/model';
3
+
4
+ import { client, community11, communityUser11, user11 } from '~/utils/tests';
5
+
6
+ import { onCommunityUserAdded } from '../../events';
7
+ import { addCommunityMembers } from '../addCommunityMembers';
8
+
9
+ const communityToAddUserTo = community11;
10
+ const userToAdd = communityUser11;
11
+
12
+ const resolvedPostValue = {
13
+ data: {
14
+ communities: [communityToAddUserTo],
15
+ communityUsers: [userToAdd],
16
+ files: [],
17
+ users: [user11],
18
+ categories: [],
19
+ feeds: [],
20
+ },
21
+ };
22
+
23
+ describe('addCommunityMembers', () => {
24
+ test('should return true value', async () => {
25
+ client.http.post = jest.fn().mockResolvedValue(resolvedPostValue);
26
+
27
+ const recieved = addCommunityMembers(communityToAddUserTo.communityId, [userToAdd.userId]);
28
+
29
+ await expect(recieved).resolves.toBe(true);
30
+ });
31
+
32
+ test('should throw an error if request fails', async () => {
33
+ client.http.post = jest.fn().mockRejectedValueOnce(new Error('error'));
34
+
35
+ await expect(
36
+ addCommunityMembers(communityToAddUserTo.communityId, [userToAdd.userId]),
37
+ ).rejects.toThrow('error');
38
+ });
39
+
40
+ test('should create cache after added user', async () => {
41
+ enableCache();
42
+ client.http.post = jest.fn().mockResolvedValue(resolvedPostValue);
43
+
44
+ await addCommunityMembers(communityToAddUserTo.communityId, [userToAdd.userId]);
45
+ const recieved = pullFromCache([
46
+ 'communityUsers',
47
+ 'get',
48
+ getResolver('communityUsers')({
49
+ communityId: communityToAddUserTo.communityId,
50
+ userId: userToAdd.userId,
51
+ }),
52
+ ])?.data;
53
+
54
+ expect(recieved).toEqual(expect.objectContaining(userToAdd));
55
+
56
+ disableCache();
57
+ });
58
+
59
+ test('should fire event `onCommunityUserAdded`', async () => {
60
+ let dispose;
61
+ client.http.post = jest.fn().mockResolvedValueOnce(resolvedPostValue);
62
+
63
+ const callback = new Promise(resolve => {
64
+ dispose = onCommunityUserAdded(resolve);
65
+ }).finally(dispose);
66
+
67
+ await addCommunityMembers(communityToAddUserTo.communityId, [userToAdd.userId]);
68
+
69
+ await expect(callback).resolves.toEqual(expect.objectContaining(communityToAddUserTo));
70
+ });
71
+ });
@@ -0,0 +1,67 @@
1
+ import { disableCache, enableCache, pullFromCache } from '~/cache/api';
2
+ import { getResolver } from '~/core/model';
3
+
4
+ import { client, community11, communityUser11, user11 } from '~/utils/tests';
5
+
6
+ import { addCommunityMembersRoles } from '../addCommunityMembersRoles';
7
+
8
+ const roleToAdd = 'some-new-sole';
9
+ const userCommunity = community11;
10
+ const userToAddRole = communityUser11;
11
+
12
+ const addedRoleUser = {
13
+ ...userToAddRole,
14
+ roles: [...userToAddRole.roles, roleToAdd],
15
+ };
16
+
17
+ const resolvedPostValue = {
18
+ data: {
19
+ communities: [userCommunity],
20
+ communityUsers: [addedRoleUser],
21
+ files: [],
22
+ users: [user11],
23
+ categories: [],
24
+ feeds: [],
25
+ },
26
+ };
27
+
28
+ describe('addCommunityMembersRoles', () => {
29
+ test('should return true', async () => {
30
+ client.http.post = jest.fn().mockResolvedValue(resolvedPostValue);
31
+
32
+ const recieved = addCommunityMembersRoles(
33
+ userCommunity.communityId,
34
+ [roleToAdd],
35
+ [userToAddRole.userId],
36
+ );
37
+
38
+ await expect(recieved).resolves.toBe(true);
39
+ });
40
+
41
+ test('should throw an error if request fails', async () => {
42
+ client.http.post = jest.fn().mockRejectedValueOnce(new Error('error'));
43
+
44
+ await expect(
45
+ addCommunityMembersRoles(userCommunity.communityId, [roleToAdd], [userToAddRole.userId]),
46
+ ).rejects.toThrow('error');
47
+ });
48
+
49
+ test('should create cache after added user', async () => {
50
+ enableCache();
51
+ client.http.post = jest.fn().mockResolvedValue(resolvedPostValue);
52
+
53
+ await addCommunityMembersRoles(userCommunity.communityId, [roleToAdd], [userToAddRole.userId]);
54
+ const recieved = pullFromCache([
55
+ 'communityUsers',
56
+ 'get',
57
+ getResolver('communityUsers')({
58
+ communityId: userCommunity.communityId,
59
+ userId: userToAddRole.userId,
60
+ }),
61
+ ])?.data;
62
+
63
+ expect(recieved).toEqual(expect.objectContaining(addedRoleUser));
64
+
65
+ disableCache();
66
+ });
67
+ });
@@ -0,0 +1,61 @@
1
+ import { disableCache, enableCache, pullFromCache } from '~/cache/api';
2
+
3
+ import { client, community11, communityUser11 } from '~/utils/tests';
4
+
5
+ import { onCommunityCreated } from '../../events';
6
+ import { createCommunity } from '../createCommunity';
7
+
8
+ const communityToCreate = community11;
9
+ const { communityId: createId, ...payload } = communityToCreate;
10
+
11
+ const resolvedPostValue = {
12
+ data: {
13
+ communities: [communityToCreate],
14
+ communityUsers: [communityUser11],
15
+ files: [],
16
+ users: [],
17
+ categories: [],
18
+ feeds: [],
19
+ },
20
+ };
21
+
22
+ describe('createCommunity', () => {
23
+ test('should return created community', async () => {
24
+ client.http.post = jest.fn().mockResolvedValue(resolvedPostValue);
25
+
26
+ const recieved = createCommunity(payload);
27
+
28
+ await expect(recieved).resolves.toEqual(expect.objectContaining({ data: communityToCreate }));
29
+ });
30
+
31
+ test('should throw an error if request fails', async () => {
32
+ client.http.post = jest.fn().mockRejectedValueOnce(new Error('error'));
33
+
34
+ await expect(createCommunity(payload)).rejects.toThrow('error');
35
+ });
36
+
37
+ test('should create cache after created community', async () => {
38
+ enableCache();
39
+ client.http.post = jest.fn().mockResolvedValue(resolvedPostValue);
40
+
41
+ await createCommunity(payload);
42
+ const recieved = pullFromCache(['community', 'get', createId])?.data;
43
+
44
+ expect(recieved).toEqual(expect.objectContaining(communityToCreate));
45
+
46
+ disableCache();
47
+ });
48
+
49
+ test('should fire event `onCommunityCreated`', async () => {
50
+ let dispose;
51
+ client.http.post = jest.fn().mockResolvedValueOnce(resolvedPostValue);
52
+
53
+ const callbackPromise = new Promise(resolve => {
54
+ dispose = onCommunityCreated(resolve);
55
+ }).finally(dispose);
56
+
57
+ await createCommunity(payload);
58
+
59
+ await expect(callbackPromise).resolves.toEqual(expect.objectContaining(communityToCreate));
60
+ });
61
+ });