@amityco/ts-sdk 0.0.1-beta.30 → 0.0.1-beta.32

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 (233) hide show
  1. package/dist/@types/core/cache.d.ts +3 -0
  2. package/dist/@types/core/cache.d.ts.map +1 -1
  3. package/dist/@types/core/errors.d.ts +2 -1
  4. package/dist/@types/core/errors.d.ts.map +1 -1
  5. package/dist/@types/core/events.d.ts +2 -0
  6. package/dist/@types/core/events.d.ts.map +1 -1
  7. package/dist/@types/core/live.d.ts +8 -4
  8. package/dist/@types/core/live.d.ts.map +1 -1
  9. package/dist/@types/core/query.d.ts +1 -1
  10. package/dist/@types/core/query.d.ts.map +1 -1
  11. package/dist/@types/domains/channel.d.ts +1 -0
  12. package/dist/@types/domains/channel.d.ts.map +1 -1
  13. package/dist/@types/domains/message.d.ts +13 -6
  14. package/dist/@types/domains/message.d.ts.map +1 -1
  15. package/dist/@types/domains/post.d.ts +10 -3
  16. package/dist/@types/domains/post.d.ts.map +1 -1
  17. package/dist/@types/domains/user.d.ts +1 -0
  18. package/dist/@types/domains/user.d.ts.map +1 -1
  19. package/dist/@types/index.d.ts +2 -2
  20. package/dist/@types/index.d.ts.map +1 -1
  21. package/dist/cache/api/backupCache.d.ts.map +1 -1
  22. package/dist/cache/api/isInTombstone.d.ts +18 -0
  23. package/dist/cache/api/isInTombstone.d.ts.map +1 -0
  24. package/dist/cache/api/pushToTombstone.d.ts +17 -0
  25. package/dist/cache/api/pushToTombstone.d.ts.map +1 -0
  26. package/dist/cache/api/tests/pushToCache.test.d.ts +2 -0
  27. package/dist/cache/api/tests/pushToCache.test.d.ts.map +1 -0
  28. package/dist/cache/utils/index.d.ts +17 -0
  29. package/dist/cache/utils/index.d.ts.map +1 -1
  30. package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
  31. package/dist/channel/api/getChannel.d.ts.map +1 -1
  32. package/dist/channel/api/queryChannelMembers.d.ts +1 -1
  33. package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
  34. package/dist/channel/api/queryChannels.d.ts +1 -1
  35. package/dist/channel/api/queryChannels.d.ts.map +1 -1
  36. package/dist/channel/api/tests/addChannelMembers.test.d.ts +2 -0
  37. package/dist/channel/api/tests/addChannelMembers.test.d.ts.map +1 -0
  38. package/dist/channel/api/tests/getChannel.test.d.ts +2 -0
  39. package/dist/channel/api/tests/getChannel.test.d.ts.map +1 -0
  40. package/dist/channel/api/tests/queryChannelMembers.test.d.ts +2 -0
  41. package/dist/channel/api/tests/queryChannelMembers.test.d.ts.map +1 -0
  42. package/dist/channel/api/tests/queryChannels.test.d.ts +2 -0
  43. package/dist/channel/api/tests/queryChannels.test.d.ts.map +1 -0
  44. package/dist/channel/events/index.d.ts +2 -0
  45. package/dist/channel/events/index.d.ts.map +1 -1
  46. package/dist/channel/events/onChannelMemberAdded.d.ts.map +1 -1
  47. package/dist/channel/events/onChannelMemberBanned.d.ts +17 -0
  48. package/dist/channel/events/onChannelMemberBanned.d.ts.map +1 -0
  49. package/dist/channel/events/onChannelMemberUnbanned.d.ts +17 -0
  50. package/dist/channel/events/onChannelMemberUnbanned.d.ts.map +1 -0
  51. package/dist/channel/events/tests/onChannelMemberBanned.test.d.ts +2 -0
  52. package/dist/channel/events/tests/onChannelMemberBanned.test.d.ts.map +1 -0
  53. package/dist/channel/events/tests/onChannelMemberUnbanned.test.d.ts +2 -0
  54. package/dist/channel/events/tests/onChannelMemberUnbanned.test.d.ts.map +1 -0
  55. package/dist/channel/observers/liveChannelMembers.d.ts.map +1 -1
  56. package/dist/channel/observers/liveChannels.d.ts.map +1 -1
  57. package/dist/channel/{tests/utils → utils/tests}/prepareChannelPayload.test.d.ts +0 -0
  58. package/dist/channel/utils/tests/prepareChannelPayload.test.d.ts.map +1 -0
  59. package/dist/core/events.d.ts +3 -3
  60. package/dist/core/events.d.ts.map +1 -1
  61. package/dist/core/query/filtering.d.ts +11 -0
  62. package/dist/core/query/filtering.d.ts.map +1 -1
  63. package/dist/core/query/query.d.ts.map +1 -1
  64. package/dist/core/transports/http.d.ts +5 -0
  65. package/dist/core/transports/http.d.ts.map +1 -1
  66. package/dist/core/transports/test/http.test.d.ts +2 -0
  67. package/dist/core/transports/test/http.test.d.ts.map +1 -0
  68. package/dist/index.cjs.js +980 -534
  69. package/dist/index.esm.js +962 -526
  70. package/dist/index.umd.js +4 -4
  71. package/dist/message/api/createMessage.d.ts +4 -1
  72. package/dist/message/api/createMessage.d.ts.map +1 -1
  73. package/dist/message/api/deleteMessage.d.ts.map +1 -1
  74. package/dist/message/api/getMessage.d.ts +1 -1
  75. package/dist/message/api/getMessage.d.ts.map +1 -1
  76. package/dist/message/api/getMessages.d.ts.map +1 -1
  77. package/dist/message/api/queryMessages.d.ts.map +1 -1
  78. package/dist/message/api/tests/createMessage.test.d.ts +2 -0
  79. package/dist/message/api/tests/createMessage.test.d.ts.map +1 -0
  80. package/dist/message/api/tests/deleteMessage.test.d.ts +2 -0
  81. package/dist/message/api/tests/deleteMessage.test.d.ts.map +1 -0
  82. package/dist/message/api/tests/getMessage.test.d.ts +2 -0
  83. package/dist/message/api/tests/getMessage.test.d.ts.map +1 -0
  84. package/dist/message/api/tests/getMessages.test.d.ts +2 -0
  85. package/dist/message/api/tests/getMessages.test.d.ts.map +1 -0
  86. package/dist/message/api/tests/queryMessages.test.d.ts +2 -0
  87. package/dist/message/api/tests/queryMessages.test.d.ts.map +1 -0
  88. package/dist/message/api/tests/updateMessage.test.d.ts +2 -0
  89. package/dist/message/api/tests/updateMessage.test.d.ts.map +1 -0
  90. package/dist/message/api/updateMessage.d.ts.map +1 -1
  91. package/dist/message/events/index.d.ts +1 -0
  92. package/dist/message/events/index.d.ts.map +1 -1
  93. package/dist/message/events/onMessageFetched.d.ts +17 -0
  94. package/dist/message/events/onMessageFetched.d.ts.map +1 -0
  95. package/dist/message/observers/index.d.ts +2 -1
  96. package/dist/message/observers/index.d.ts.map +1 -1
  97. package/dist/message/observers/liveMessage.d.ts +18 -0
  98. package/dist/message/observers/liveMessage.d.ts.map +1 -0
  99. package/dist/message/observers/liveMessages.d.ts.map +1 -1
  100. package/dist/message/observers/observeMessage.d.ts.map +1 -1
  101. package/dist/message/tests/observers/liveMessage.test.d.ts +2 -0
  102. package/dist/message/tests/observers/liveMessage.test.d.ts.map +1 -0
  103. package/dist/message/{observers/tests → tests/observers}/liveMessages.test.d.ts +0 -0
  104. package/dist/message/tests/observers/liveMessages.test.d.ts.map +1 -0
  105. package/dist/post/api/deletePost.d.ts.map +1 -1
  106. package/dist/post/api/getPost.d.ts.map +1 -1
  107. package/dist/post/api/updatePost.d.ts +6 -1
  108. package/dist/post/api/updatePost.d.ts.map +1 -1
  109. package/dist/reaction/api/addReaction.d.ts.map +1 -1
  110. package/dist/reaction/api/removeReaction.d.ts.map +1 -1
  111. package/dist/reaction/api/tests/addReaction.test.d.ts +2 -0
  112. package/dist/reaction/api/tests/addReaction.test.d.ts.map +1 -0
  113. package/dist/reaction/api/tests/removeReaction.test.d.ts +2 -0
  114. package/dist/reaction/api/tests/removeReaction.test.d.ts.map +1 -0
  115. package/dist/user/api/getUser.d.ts +1 -1
  116. package/dist/user/api/getUser.d.ts.map +1 -1
  117. package/dist/user/api/getUsers.d.ts.map +1 -1
  118. package/dist/user/api/queryUsers.d.ts.map +1 -1
  119. package/dist/user/api/tests/queryUsers.test.d.ts +2 -0
  120. package/dist/user/api/tests/queryUsers.test.d.ts.map +1 -0
  121. package/dist/user/api/updateUser.d.ts.map +1 -1
  122. package/dist/user/events/index.d.ts +1 -0
  123. package/dist/user/events/index.d.ts.map +1 -1
  124. package/dist/user/events/onUserFetched.d.ts +17 -0
  125. package/dist/user/events/onUserFetched.d.ts.map +1 -0
  126. package/dist/user/observers/index.d.ts +1 -0
  127. package/dist/user/observers/index.d.ts.map +1 -1
  128. package/dist/user/observers/liveUser.d.ts +18 -0
  129. package/dist/user/observers/liveUser.d.ts.map +1 -0
  130. package/dist/user/observers/observeUser.d.ts.map +1 -1
  131. package/dist/user/tests/api/getUser.test.d.ts +2 -0
  132. package/dist/user/tests/api/getUser.test.d.ts.map +1 -0
  133. package/dist/user/tests/observers/liveUser.test.d.ts +2 -0
  134. package/dist/user/tests/observers/liveUser.test.d.ts.map +1 -0
  135. package/dist/utils/constants.d.ts +3 -0
  136. package/dist/utils/constants.d.ts.map +1 -1
  137. package/dist/utils/tests/dummy/channel.d.ts +15 -0
  138. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  139. package/dist/utils/tests/dummy/message.d.ts +12 -1
  140. package/dist/utils/tests/dummy/message.d.ts.map +1 -1
  141. package/dist/utils/tests/dummy/post.d.ts +12 -1
  142. package/dist/utils/tests/dummy/post.d.ts.map +1 -1
  143. package/dist/utils/tests/dummy/user.d.ts +10 -0
  144. package/dist/utils/tests/dummy/user.d.ts.map +1 -1
  145. package/package.json +2 -1
  146. package/src/@types/core/cache.ts +4 -0
  147. package/src/@types/core/errors.ts +1 -0
  148. package/src/@types/core/events.ts +2 -0
  149. package/src/@types/core/live.ts +10 -4
  150. package/src/@types/core/query.ts +1 -1
  151. package/src/@types/domains/channel.ts +6 -0
  152. package/src/@types/domains/message.ts +13 -10
  153. package/src/@types/domains/post.ts +10 -3
  154. package/src/@types/domains/user.ts +8 -0
  155. package/src/@types/index.ts +2 -2
  156. package/src/cache/api/backupCache.ts +0 -1
  157. package/src/cache/api/index.ts +2 -1
  158. package/src/cache/api/isInTombstone.ts +41 -0
  159. package/src/cache/api/pushToTombstone.ts +33 -0
  160. package/src/cache/api/tests/pushToCache.test.ts +57 -0
  161. package/src/cache/utils/index.ts +22 -0
  162. package/src/channel/api/addChannelMembers.ts +9 -1
  163. package/src/channel/api/getChannel.ts +20 -5
  164. package/src/channel/api/queryChannelMembers.ts +53 -5
  165. package/src/channel/api/queryChannels.ts +31 -4
  166. package/src/channel/api/tests/addChannelMembers.test.ts +95 -0
  167. package/src/channel/api/tests/getChannel.test.ts +108 -0
  168. package/src/channel/api/tests/queryChannelMembers.test.ts +115 -0
  169. package/src/channel/api/tests/queryChannels.test.ts +121 -0
  170. package/src/channel/events/index.ts +5 -0
  171. package/src/channel/events/onChannelMemberAdded.ts +1 -1
  172. package/src/channel/events/onChannelMemberBanned.ts +36 -0
  173. package/src/channel/events/onChannelMemberUnbanned.ts +36 -0
  174. package/src/channel/events/tests/onChannelMemberBanned.test.ts +58 -0
  175. package/src/channel/events/tests/onChannelMemberUnbanned.test.ts +58 -0
  176. package/src/channel/observers/liveChannelMembers.ts +28 -4
  177. package/src/channel/observers/liveChannels.ts +7 -1
  178. package/src/channel/observers/tests/liveChannelMembers.test.ts +53 -11
  179. package/src/channel/observers/tests/liveChannels.test.ts +50 -21
  180. package/src/channel/{tests/utils → utils/tests}/prepareChannelPayload.test.ts +1 -1
  181. package/src/core/events.ts +2 -1
  182. package/src/core/query/filtering.ts +49 -0
  183. package/src/core/query/query.ts +9 -6
  184. package/src/core/tests/query/query.test.ts +12 -2
  185. package/src/core/transports/http.ts +3 -17
  186. package/src/core/transports/test/http.test.ts +83 -0
  187. package/src/message/api/createMessage.ts +15 -9
  188. package/src/message/api/deleteMessage.ts +4 -4
  189. package/src/message/api/getMessage.ts +32 -4
  190. package/src/message/api/getMessages.ts +6 -1
  191. package/src/message/api/queryMessages.ts +3 -0
  192. package/src/message/api/tests/createMessage.test.ts +99 -0
  193. package/src/message/api/tests/deleteMessage.test.ts +110 -0
  194. package/src/message/api/tests/getMessage.test.ts +121 -0
  195. package/src/message/api/tests/getMessages.test.ts +108 -0
  196. package/src/message/api/tests/queryMessages.test.ts +115 -0
  197. package/src/message/api/tests/updateMessage.test.ts +100 -0
  198. package/src/message/api/updateMessage.ts +2 -0
  199. package/src/message/events/index.ts +1 -0
  200. package/src/message/events/onMessageFetched.ts +30 -0
  201. package/src/message/observers/index.ts +2 -1
  202. package/src/message/observers/liveMessage.ts +100 -0
  203. package/src/message/observers/liveMessages.ts +3 -1
  204. package/src/message/observers/observeMessage.ts +4 -0
  205. package/src/message/tests/observers/liveMessage.test.ts +248 -0
  206. package/src/message/{observers/tests → tests/observers}/liveMessages.test.ts +29 -3
  207. package/src/post/api/deletePost.ts +4 -3
  208. package/src/post/api/getPost.ts +8 -4
  209. package/src/post/api/updatePost.ts +6 -1
  210. package/src/post/tests/api/queryPosts.test.ts +117 -18
  211. package/src/reaction/api/addReaction.ts +1 -4
  212. package/src/reaction/api/removeReaction.ts +1 -4
  213. package/src/reaction/api/tests/addReaction.test.ts +37 -0
  214. package/src/reaction/api/tests/removeReaction.test.ts +43 -0
  215. package/src/user/api/getUser.ts +32 -5
  216. package/src/user/api/getUsers.ts +3 -0
  217. package/src/user/api/queryUsers.ts +27 -5
  218. package/src/user/api/tests/queryUsers.test.ts +124 -0
  219. package/src/user/api/updateUser.ts +3 -0
  220. package/src/user/events/index.ts +1 -0
  221. package/src/user/events/onUserFetched.ts +19 -0
  222. package/src/user/observers/index.ts +1 -0
  223. package/src/user/observers/liveUser.ts +89 -0
  224. package/src/user/observers/observeUser.ts +2 -0
  225. package/src/user/tests/api/getUser.test.ts +112 -0
  226. package/src/user/tests/observers/liveUser.test.ts +224 -0
  227. package/src/utils/constants.ts +5 -0
  228. package/src/utils/tests/dummy/channel.ts +43 -0
  229. package/src/utils/tests/dummy/message.ts +16 -2
  230. package/src/utils/tests/dummy/post.ts +26 -3
  231. package/src/utils/tests/dummy/user.ts +11 -0
  232. package/dist/channel/tests/utils/prepareChannelPayload.test.d.ts.map +0 -1
  233. package/dist/message/observers/tests/liveMessages.test.d.ts.map +0 -1
@@ -0,0 +1,224 @@
1
+ import { ASCApiError } from '~/core/errors';
2
+ import { disableCache, enableCache } from '~/cache/api';
3
+ import { LIVE_OBJECT_ENABLE_CACHE_MESSAGE } from '~/utils/constants';
4
+
5
+ import { liveUser } from '../../observers/liveUser';
6
+
7
+ import {
8
+ pause,
9
+ client,
10
+ connectClient,
11
+ disconnectClient,
12
+ userQueryResponse,
13
+ user11 as defaultUser,
14
+ } from '~/utils/tests';
15
+
16
+ const getSnapshot = () => {
17
+ return {
18
+ loading: true,
19
+ error: undefined as any,
20
+ data: undefined as undefined | Amity.User,
21
+ };
22
+ };
23
+
24
+ describe('liveUser', () => {
25
+ beforeAll(async () => {
26
+ await connectClient();
27
+ });
28
+
29
+ afterAll(async () => {
30
+ await disconnectClient();
31
+ });
32
+
33
+ beforeEach(async () => {
34
+ enableCache();
35
+ });
36
+
37
+ afterEach(disableCache);
38
+
39
+ test('it should show user if cache not enabled', () => {
40
+ /*
41
+ * NOTE: at the time of writing this test cache is diabled by default, but
42
+ * there is a proposal to enable cache by default. So I'm disabling cache
43
+ * here to ensure cache is disabled
44
+ */
45
+ disableCache();
46
+
47
+ const callback = jest.fn();
48
+ jest.spyOn(global.console, 'log');
49
+ client.http.get = jest.fn();
50
+
51
+ // call liveUser check if mocked console get's called with the correct
52
+ // user
53
+ client.use();
54
+ liveUser(defaultUser.userId, callback);
55
+
56
+ expect(console.log).toBeCalledWith(LIVE_OBJECT_ENABLE_CACHE_MESSAGE);
57
+ });
58
+
59
+ test('it should return user live object', async () => {
60
+ const snapshot = getSnapshot();
61
+
62
+ // mock response of queryUsers and validate
63
+ const callback = jest.fn();
64
+ client.http.get = jest.fn().mockResolvedValue(userQueryResponse);
65
+
66
+ liveUser(defaultUser.userId, callback);
67
+
68
+ expect(callback).toHaveBeenCalledTimes(1);
69
+
70
+ // check if cache data returned (should be empty)
71
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining(snapshot));
72
+
73
+ await pause();
74
+
75
+ expect(callback).toHaveBeenCalledTimes(2);
76
+
77
+ snapshot.loading = false;
78
+ snapshot.data = defaultUser;
79
+
80
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining(snapshot));
81
+ });
82
+
83
+ test('it should return error on api failure', async () => {
84
+ const snapshot = getSnapshot();
85
+ const error = new ASCApiError(
86
+ 'server error!',
87
+ Amity.ServerError.ITEM_NOT_FOUND,
88
+ Amity.ErrorLevel.ERROR,
89
+ );
90
+
91
+ // mock response of queryUsers and validate
92
+ const callback = jest.fn();
93
+ client.http.get = jest.fn().mockRejectedValue(error);
94
+
95
+ liveUser(defaultUser.userId, callback);
96
+
97
+ expect(callback).toHaveBeenCalledTimes(1);
98
+
99
+ // check if cache data returned (should be empty)
100
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining(snapshot));
101
+
102
+ await pause();
103
+
104
+ expect(callback).toHaveBeenCalledTimes(2);
105
+
106
+ snapshot.error = error;
107
+ snapshot.loading = false;
108
+ expect(callback).toHaveBeenLastCalledWith(expect.objectContaining(snapshot));
109
+ });
110
+
111
+ test('it should terminate updates on api failure', async () => {
112
+ const snapshot = getSnapshot();
113
+ const error = new ASCApiError(
114
+ 'server error!',
115
+ Amity.ServerError.ITEM_NOT_FOUND,
116
+ Amity.ErrorLevel.ERROR,
117
+ );
118
+
119
+ // mock response of queryUsers and validate
120
+ const callback = jest.fn();
121
+ client.http.get = jest.fn().mockRejectedValue(error);
122
+
123
+ liveUser(defaultUser.userId, callback);
124
+
125
+ expect(callback).toHaveBeenCalledTimes(1);
126
+
127
+ // check if cache data returned (should be empty)
128
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining(snapshot));
129
+
130
+ await pause();
131
+
132
+ expect(callback).toHaveBeenCalledTimes(2);
133
+
134
+ snapshot.error = error;
135
+ snapshot.loading = false;
136
+ expect(callback).toHaveBeenLastCalledWith(expect.objectContaining(snapshot));
137
+
138
+ const updatedAt = new Date(defaultUser?.updatedAt ?? new Date());
139
+ updatedAt.setDate(updatedAt.getDate() + 7);
140
+
141
+ const updatedUser = {
142
+ ...defaultUser,
143
+ updatedAt: updatedAt.toISOString(),
144
+ };
145
+ client.emitter.emit('user.updated', { users: [updatedUser], files: [] });
146
+
147
+ delete snapshot.error;
148
+ snapshot.loading = false;
149
+ snapshot.data = updatedUser;
150
+ expect(callback).not.toHaveBeenNthCalledWith(3, expect.objectContaining(snapshot));
151
+ });
152
+
153
+ test('it should not return updates on obtain once!', async () => {
154
+ const snapshot = getSnapshot();
155
+
156
+ // mock response of queryUsers and validate
157
+ const callback = jest.fn();
158
+ client.http.get = jest.fn().mockResolvedValue(userQueryResponse);
159
+
160
+ const unsub = liveUser(defaultUser.userId, callback);
161
+
162
+ expect(callback).toHaveBeenCalledTimes(1);
163
+
164
+ // check if cache data returned (should be empty)
165
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining(snapshot));
166
+
167
+ await pause();
168
+
169
+ expect(callback).toHaveBeenCalledTimes(2);
170
+
171
+ unsub();
172
+
173
+ const updatedAt = new Date(defaultUser?.updatedAt ?? new Date());
174
+ updatedAt.setDate(updatedAt.getDate() + 7);
175
+
176
+ const updatedUser = {
177
+ ...defaultUser,
178
+ updatedAt: updatedAt.toISOString(),
179
+ };
180
+ client.emitter.emit('user.updated', { users: [updatedUser], files: [] });
181
+
182
+ delete snapshot.error;
183
+ snapshot.loading = false;
184
+ snapshot.data = updatedUser;
185
+ expect(callback).not.toHaveBeenNthCalledWith(3, expect.objectContaining(snapshot));
186
+ });
187
+
188
+ const events: [string, keyof Amity.Events][] = [
189
+ ['it should return updated user on onFetch', 'user.fetched'],
190
+ ['it should return updated user on onUpdate', 'user.updated'],
191
+ ['it should return updated user on onDelete', 'user.deleted'],
192
+ ['it should return updated user on onFlagged', 'user.flagged'],
193
+ ['it should return updated user on onUnflagged', 'user.unflagged'],
194
+ ['it should return updated user on onFlagCleared', 'user.flagCleared'],
195
+ ];
196
+
197
+ test.each(events)('%s', async (test, event) => {
198
+ const snapshot = getSnapshot();
199
+
200
+ // mock response of queryUsers and validate
201
+ const callback = jest.fn();
202
+ client.http.get = jest.fn().mockResolvedValue(userQueryResponse);
203
+
204
+ liveUser(defaultUser.userId, callback);
205
+
206
+ await pause();
207
+
208
+ expect(callback).toHaveBeenCalledTimes(2);
209
+
210
+ const updatedAt = new Date(defaultUser?.updatedAt ?? new Date());
211
+ updatedAt.setDate(updatedAt.getDate() + 7);
212
+
213
+ const updatedUser = {
214
+ ...defaultUser,
215
+ updatedAt: updatedAt.toISOString(),
216
+ };
217
+ client.emitter.emit(event, { users: [updatedUser], files: [] });
218
+
219
+ delete snapshot.error;
220
+ snapshot.loading = false;
221
+ snapshot.data = updatedUser;
222
+ expect(callback).toHaveBeenNthCalledWith(3, expect.objectContaining(snapshot));
223
+ });
224
+ });
@@ -1,3 +1,8 @@
1
1
  export const COLLECTION_DEFAULT_PAGINATION_LIMIT = 5;
2
2
  export const COLLECTION_DEFAULT_CACHING_POLICY: Amity.QueryPolicy = 'cache_then_server';
3
3
  export const ENABLE_CACHE_MESSAGE = 'For using Live Collection feature you need to enable Cache!';
4
+ export const LIVE_OBJECT_ENABLE_CACHE_MESSAGE =
5
+ 'For using Live Object feature you need to enable Cache!';
6
+ export const UNSYNCED_OBJECT_CACHED_AT_MESSAGE =
7
+ 'Observing unsynced object is not supported by Live Object.';
8
+ export const UNSYNCED_OBJECT_CACHED_AT_VALUE = -5;
@@ -95,6 +95,39 @@ export const channelUser4: Amity.Membership<'channel'> = {
95
95
  userId: user13.userId,
96
96
  };
97
97
 
98
+ export const channelUser5: Amity.Membership<'channel'> = {
99
+ isMuted: false,
100
+ createdAt: date,
101
+ muteTimeout: '',
102
+ isBanned: true,
103
+ readToSegment: 1,
104
+ lastActivity: date,
105
+ userId: user13.userId,
106
+ ...rolesAndPermissions,
107
+ membership: 'banned',
108
+ lastMentionedSegment: 0,
109
+ channelId: channel11.channelId,
110
+ };
111
+
112
+ export const channelUser6: Amity.Membership<'channel'> = {
113
+ isMuted: true,
114
+ createdAt: date,
115
+ muteTimeout: '',
116
+ isBanned: true,
117
+ readToSegment: 1,
118
+ lastActivity: date,
119
+ userId: 'test',
120
+ ...rolesAndPermissions,
121
+ membership: 'banned',
122
+ lastMentionedSegment: 0,
123
+ channelId: channel11.channelId,
124
+ };
125
+
126
+ export const channelUser7: Amity.Membership<'channel'> = {
127
+ ...channelUser3,
128
+ membership: 'member',
129
+ };
130
+
98
131
  export const channelQueryResponse = {
99
132
  data: {
100
133
  channels: [channel11, channel12],
@@ -134,3 +167,13 @@ export const channelUserQueryResponsePage2 = {
134
167
  ...mockPage,
135
168
  },
136
169
  };
170
+
171
+ export const channelUserQueryResponsePage3 = {
172
+ data: {
173
+ channels: [channel11],
174
+ channelUsers: [channelUser7, channelUser6],
175
+ users: [],
176
+ files: [],
177
+ ...mockPage,
178
+ },
179
+ };
@@ -1,6 +1,8 @@
1
1
  import { date, channel11, user11 } from '.';
2
2
 
3
- export const message: Amity.Message = {
3
+ export const message11: Amity.Message = {
4
+ fileId: null,
5
+ type: 'text',
4
6
  reactions: {},
5
7
  editedAt: date,
6
8
  createdAt: date,
@@ -15,7 +17,19 @@ export const message: Amity.Message = {
15
17
 
16
18
  export const messages = {
17
19
  channelId: 'channelId',
18
- page1: ['messageId11', 'messageId12', 'messageId13'],
20
+ page1: [message11.messageId, 'messageId12', 'messageId13'],
19
21
  page2: ['messageId21', 'messageId22', 'messageId23'],
20
22
  page3: ['messageId31', 'messageId32', 'messageId33'],
21
23
  };
24
+
25
+ export const messageQueryResponse = {
26
+ data: {
27
+ messages: [message11],
28
+ files: [],
29
+ users: [],
30
+ paging: {
31
+ previous: 'eyJiZWZvcmUiOjU1LCJsYXN0IjoxMH0=',
32
+ next: 'eyJiZWZvcmUiOjU1LCJsYXN0IjoxMH0=',
33
+ },
34
+ },
35
+ };
@@ -1,6 +1,7 @@
1
+ import { encodeJson } from '..';
1
2
  import { user11, date } from '.';
2
3
 
3
- export const post1: Amity.Post = {
4
+ export const post11: Amity.Post = {
4
5
  path: '',
5
6
  feedId: '',
6
7
  children: [],
@@ -15,17 +16,39 @@ export const post1: Amity.Post = {
15
16
  postId: 'postId11',
16
17
  targetType: 'user',
17
18
  parentId: 'postId12',
18
- data: { text: 'post1' },
19
+ data: { text: 'post11' },
19
20
  targetId: user11.userId,
20
21
  hasFlaggedComment: false,
21
22
  hasFlaggedChildren: false,
22
23
  postedUserId: user11.userId,
23
24
  };
24
25
 
26
+ export const post12: Amity.Post = {
27
+ ...post11,
28
+ postId: 'post12',
29
+ };
30
+
31
+ export const post13: Amity.Post = {
32
+ ...post11,
33
+ postId: 'post13',
34
+ };
35
+
25
36
  export const posts = {
26
37
  targetId: user11.userId,
27
38
  targetType: 'user' as Amity.PostTargetType,
28
- page1: [post1.postId, 'postId12', 'postId13'],
39
+ page1: [post11.postId, post12.postId, post13.postId],
29
40
  page2: ['postId21', 'postId22', 'postId23'],
30
41
  page3: ['postId31', 'postId32', 'postId33'],
31
42
  };
43
+
44
+ const nextPage = encodeJson({ before: post13.postId, limit: 10 });
45
+
46
+ export const postQueryResponse = {
47
+ data: {
48
+ posts: [post11, post12, post13],
49
+ files: [],
50
+ paging: {
51
+ next: nextPage,
52
+ },
53
+ },
54
+ };
@@ -24,3 +24,14 @@ export const user14: Amity.User = {
24
24
  ...user11,
25
25
  userId: 'user4',
26
26
  };
27
+
28
+ export const userQueryResponse = {
29
+ data: {
30
+ users: [user11, user12],
31
+ files: [],
32
+ paging: {
33
+ previous: 'eyJiZWZvcmUiOjU1LCJsYXN0IjoxMH0=',
34
+ next: 'eyJiZWZvcmUiOjU1LCJsYXN0IjoxMH0=',
35
+ },
36
+ },
37
+ };
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareChannelPayload.test.d.ts","sourceRoot":"","sources":["../../../../src/channel/tests/utils/prepareChannelPayload.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"liveMessages.test.d.ts","sourceRoot":"","sources":["../../../../src/message/observers/tests/liveMessages.test.ts"],"names":[],"mappings":""}