@amityco/ts-sdk 0.0.1-beta.42.2 → 0.0.1-beta.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/core/events.d.ts +11 -1
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/marker.d.ts +37 -0
- package/dist/@types/core/marker.d.ts.map +1 -0
- package/dist/@types/core/model.d.ts +10 -0
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +44 -0
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/domains/channel.d.ts +5 -8
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +1 -0
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/@types/domains/marker.d.ts +15 -0
- package/dist/@types/domains/marker.d.ts.map +1 -0
- package/dist/@types/domains/message.d.ts +3 -0
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/partials.d.ts +3 -0
- package/dist/@types/domains/partials.d.ts.map +1 -1
- package/dist/@types/domains/subChannel.d.ts +2 -0
- package/dist/@types/domains/subChannel.d.ts.map +1 -1
- package/dist/channel/api/getChannels.d.ts.map +1 -1
- package/dist/channel/api/index.d.ts +0 -2
- package/dist/channel/api/index.d.ts.map +1 -1
- package/dist/channel/events/onChannelUpdated.d.ts.map +1 -1
- package/dist/channel/utils/index.d.ts +1 -2
- package/dist/channel/utils/index.d.ts.map +1 -1
- package/dist/channel/utils/prepareChannelPayload.d.ts +6 -0
- package/dist/channel/utils/prepareChannelPayload.d.ts.map +1 -0
- package/dist/channel/utils/tests/prepareChannelPayload.test.d.ts +5 -1
- package/dist/channel/utils/tests/prepareChannelPayload.test.d.ts.map +1 -1
- package/dist/client/api/activeUser.d.ts +2 -2
- package/dist/client/api/activeUser.d.ts.map +1 -1
- package/dist/client/api/connectClient.d.ts.map +1 -1
- package/dist/client/api/index.d.ts +2 -0
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/client/api/markerSync.d.ts +21 -0
- package/dist/client/api/markerSync.d.ts.map +1 -0
- package/dist/client/observers/getTotalUnreadCount.d.ts +18 -0
- package/dist/client/observers/getTotalUnreadCount.d.ts.map +1 -0
- package/dist/client/observers/index.d.ts +2 -0
- package/dist/client/observers/index.d.ts.map +1 -0
- package/dist/client/observers/tests/getTotalUnreadCount.test.d.ts +2 -0
- package/dist/client/observers/tests/getTotalUnreadCount.test.d.ts.map +1 -0
- package/dist/client/utils/index.d.ts +2 -0
- package/dist/client/utils/index.d.ts.map +1 -0
- package/dist/client/utils/markerSyncEngine.d.ts +46 -0
- package/dist/client/utils/markerSyncEngine.d.ts.map +1 -0
- package/dist/comment/api/getComments.d.ts.map +1 -1
- package/dist/core/events.d.ts +3 -3
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/model/idResolvers.d.ts.map +1 -1
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/index.cjs.js +1931 -1159
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +1901 -1160
- package/dist/index.umd.js +4 -4
- package/dist/marker/api/getChannelMarkers.d.ts +18 -0
- package/dist/marker/api/getChannelMarkers.d.ts.map +1 -0
- package/dist/marker/api/getMessageMarkers.d.ts +18 -0
- package/dist/marker/api/getMessageMarkers.d.ts.map +1 -0
- package/dist/marker/api/getSubChannelMarkers.d.ts +18 -0
- package/dist/marker/api/getSubChannelMarkers.d.ts.map +1 -0
- package/dist/marker/api/getUserMarker.d.ts +8 -0
- package/dist/marker/api/getUserMarker.d.ts.map +1 -0
- package/dist/marker/api/index.d.ts +5 -0
- package/dist/marker/api/index.d.ts.map +1 -0
- package/dist/marker/api/tests/getChannelMarkers.test.d.ts +2 -0
- package/dist/marker/api/tests/getChannelMarkers.test.d.ts.map +1 -0
- package/dist/marker/api/tests/getMessageMarkers.test.d.ts +2 -0
- package/dist/marker/api/tests/getMessageMarkers.test.d.ts.map +1 -0
- package/dist/marker/api/tests/getSubChannelMarkers.test.d.ts +2 -0
- package/dist/marker/api/tests/getSubChannelMarkers.test.d.ts.map +1 -0
- package/dist/marker/events/index.d.ts +7 -0
- package/dist/marker/events/index.d.ts.map +1 -0
- package/dist/marker/events/onChannelMarkerFetched.d.ts +17 -0
- package/dist/marker/events/onChannelMarkerFetched.d.ts.map +1 -0
- package/dist/marker/events/onFeedlMarkerFetched.d.ts +17 -0
- package/dist/marker/events/onFeedlMarkerFetched.d.ts.map +1 -0
- package/dist/marker/events/onMessageMarkerFetched.d.ts +17 -0
- package/dist/marker/events/onMessageMarkerFetched.d.ts.map +1 -0
- package/dist/marker/events/onSubChannelMarkerFetched.d.ts +17 -0
- package/dist/marker/events/onSubChannelMarkerFetched.d.ts.map +1 -0
- package/dist/marker/events/onSubChannelMarkerUpdated.d.ts +17 -0
- package/dist/marker/events/onSubChannelMarkerUpdated.d.ts.map +1 -0
- package/dist/marker/events/onUserMarkerFetched.d.ts +17 -0
- package/dist/marker/events/onUserMarkerFetched.d.ts.map +1 -0
- package/dist/message/api/getMessage.d.ts.map +1 -1
- package/dist/message/api/getMessages.d.ts.map +1 -1
- package/dist/message/api/index.d.ts +1 -0
- package/dist/message/api/index.d.ts.map +1 -1
- package/dist/message/api/markAsDelivered.d.ts +17 -0
- package/dist/message/api/markAsDelivered.d.ts.map +1 -0
- package/dist/message/api/queryMessages.d.ts.map +1 -1
- package/dist/message/api/tests/markAsDelivered.test.d.ts +2 -0
- package/dist/message/api/tests/markAsDelivered.test.d.ts.map +1 -0
- package/dist/message/api/updateMessage.d.ts.map +1 -1
- package/dist/message/events/index.d.ts +1 -0
- package/dist/message/events/index.d.ts.map +1 -1
- package/dist/message/events/onMessageCreated.d.ts +2 -1
- package/dist/message/events/onMessageCreated.d.ts.map +1 -1
- package/dist/message/events/onMessageUpdated.d.ts.map +1 -1
- package/dist/message/utils/index.d.ts +1 -18
- package/dist/message/utils/index.d.ts.map +1 -1
- package/dist/message/utils/prepareMessagePayload.d.ts +16 -0
- package/dist/message/utils/prepareMessagePayload.d.ts.map +1 -0
- package/dist/post/api/getPosts.d.ts.map +1 -1
- package/dist/post/api/tests/getPosts.test.d.ts +2 -0
- package/dist/post/api/tests/getPosts.test.d.ts.map +1 -0
- package/dist/report/api/createReport.d.ts.map +1 -1
- package/dist/report/api/deleteReport.d.ts.map +1 -1
- package/dist/subChannel/api/getSubChannels.d.ts.map +1 -1
- package/dist/subChannel/api/index.d.ts +2 -0
- package/dist/subChannel/api/index.d.ts.map +1 -1
- package/dist/subChannel/api/startReadingAPI.d.ts +17 -0
- package/dist/subChannel/api/startReadingAPI.d.ts.map +1 -0
- package/dist/subChannel/api/stopReadingAPI.d.ts +17 -0
- package/dist/subChannel/api/stopReadingAPI.d.ts.map +1 -0
- package/dist/subChannel/events/onSubChannelUpdated.d.ts +1 -1
- package/dist/subChannel/events/onSubChannelUpdated.d.ts.map +1 -1
- package/dist/subChannel/observers/liveSubChannel.d.ts.map +1 -1
- package/dist/subChannel/utils/index.d.ts +2 -7
- package/dist/subChannel/utils/index.d.ts.map +1 -1
- package/dist/subChannel/utils/markReadEngine.d.ts +33 -0
- package/dist/subChannel/utils/markReadEngine.d.ts.map +1 -0
- package/dist/subChannel/utils/prepareSubChannelPayload.d.ts +15 -0
- package/dist/subChannel/utils/prepareSubChannelPayload.d.ts.map +1 -0
- package/dist/utils/liveObject.d.ts +1 -1
- package/dist/utils/liveObject.d.ts.map +1 -1
- package/dist/utils/tests/client.d.ts +1 -0
- package/dist/utils/tests/client.d.ts.map +1 -1
- package/dist/utils/tests/dummy/channel.d.ts +4 -0
- package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
- package/dist/utils/tests/dummy/comment.d.ts.map +1 -1
- package/dist/utils/tests/dummy/index.d.ts +1 -0
- package/dist/utils/tests/dummy/index.d.ts.map +1 -1
- package/dist/utils/tests/dummy/marker.d.ts +6 -0
- package/dist/utils/tests/dummy/marker.d.ts.map +1 -0
- package/dist/utils/tests/dummy/message.d.ts +2 -0
- package/dist/utils/tests/dummy/message.d.ts.map +1 -1
- package/dist/utils/tests/dummy/subChannel.d.ts +1 -0
- package/dist/utils/tests/dummy/subChannel.d.ts.map +1 -1
- package/dist/utils/tests/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/events.ts +13 -1
- package/src/@types/core/marker.ts +42 -0
- package/src/@types/core/model.ts +12 -0
- package/src/@types/core/payload.ts +52 -0
- package/src/@types/domains/channel.ts +5 -16
- package/src/@types/domains/client.ts +2 -0
- package/src/@types/domains/marker.ts +15 -0
- package/src/@types/domains/message.ts +3 -0
- package/src/@types/domains/partials.ts +4 -0
- package/src/@types/domains/subChannel.ts +2 -0
- package/src/channel/api/addChannelMembers.ts +1 -1
- package/src/channel/api/addChannelMembersRole.ts +1 -1
- package/src/channel/api/banChannelMembers.ts +1 -1
- package/src/channel/api/createChannel.ts +1 -1
- package/src/channel/api/getChannel.ts +1 -1
- package/src/channel/api/getChannels.ts +21 -5
- package/src/channel/api/index.ts +0 -3
- package/src/channel/api/joinChannel.ts +1 -1
- package/src/channel/api/leaveChannel.ts +1 -1
- package/src/channel/api/queryChannelMembers.ts +1 -1
- package/src/channel/api/queryChannels.ts +3 -3
- package/src/channel/api/removeChannelMembers.ts +1 -1
- package/src/channel/api/removeChannelMembersRole.ts +1 -1
- package/src/channel/api/tests/addChannelMembers.test.ts +16 -0
- package/src/channel/api/tests/createChannel.test.ts +29 -8
- package/src/channel/api/tests/getChannel.test.ts +11 -4
- package/src/channel/api/tests/getChannels.test.ts +22 -14
- package/src/channel/api/tests/queryChannelMembers.test.ts +13 -4
- package/src/channel/api/tests/queryChannels.test.ts +19 -9
- package/src/channel/api/unbanChannelMembers.ts +1 -1
- package/src/channel/api/updateChannel.ts +1 -1
- package/src/channel/events/onChannelCreated.ts +2 -2
- package/src/channel/events/onChannelDeleted.ts +4 -4
- package/src/channel/events/onChannelJoined.ts +2 -2
- package/src/channel/events/onChannelLeft.ts +2 -2
- package/src/channel/events/onChannelMemberAdded.ts +2 -2
- package/src/channel/events/onChannelMemberBanned.ts +3 -3
- package/src/channel/events/onChannelMemberRemoved.ts +2 -2
- package/src/channel/events/onChannelMemberUnbanned.ts +2 -2
- package/src/channel/events/onChannelMuted.ts +2 -2
- package/src/channel/events/onChannelUpdated.ts +25 -4
- package/src/channel/events/tests/onChannelCreated.test.ts +4 -1
- package/src/channel/events/tests/onChannelJoined.test.ts +5 -1
- package/src/channel/events/tests/onChannelMemberAdded.test.ts +5 -1
- package/src/channel/events/tests/onChannelMemberBanned.test.ts +4 -1
- package/src/channel/events/tests/onChannelMemberRemoved.test.ts +5 -1
- package/src/channel/events/tests/onChannelMemberUnbanned.test.ts +10 -10
- package/src/channel/events/tests/onChannelUpdated.test.ts +5 -1
- package/src/channel/observers/tests/liveChannelMembers.test.ts +5 -11
- package/src/channel/observers/tests/liveChannels.test.ts +21 -24
- package/src/channel/utils/index.ts +1 -57
- package/src/channel/utils/prepareChannelPayload.ts +91 -0
- package/src/channel/utils/tests/prepareChannelPayload.test.ts +102 -104
- package/src/client/api/activeUser.ts +2 -2
- package/src/client/api/connectClient.ts +2 -1
- package/src/client/api/index.ts +3 -0
- package/src/client/api/markerSync.ts +42 -0
- package/src/client/observers/getTotalUnreadCount.ts +52 -0
- package/src/client/observers/index.ts +1 -0
- package/src/client/observers/tests/getTotalUnreadCount.test.ts +126 -0
- package/src/client/utils/index.ts +1 -0
- package/src/client/utils/markerSyncEngine.ts +179 -0
- package/src/comment/api/getComments.ts +20 -4
- package/src/comment/api/tests/getComments.test.ts +12 -1
- package/src/comment/api/tests/queryComments.test.ts +2 -2
- package/src/core/model/idResolvers.ts +7 -0
- package/src/core/model/identifyModel.ts +1 -1
- package/src/core/model/index.ts +6 -0
- package/src/core/tests/query/query/runQuery.test.ts +3 -1
- package/src/group/utils/withUser.ts +2 -2
- package/src/index.ts +6 -0
- package/src/marker/api/getChannelMarkers.ts +53 -0
- package/src/marker/api/getMessageMarkers.ts +54 -0
- package/src/marker/api/getSubChannelMarkers.ts +54 -0
- package/src/marker/api/getUserMarker.ts +47 -0
- package/src/marker/api/index.ts +4 -0
- package/src/marker/api/tests/getChannelMarkers.test.ts +109 -0
- package/src/marker/api/tests/getMessageMarkers.test.ts +114 -0
- package/src/marker/api/tests/getSubChannelMarkers.test.ts +116 -0
- package/src/marker/events/index.ts +10 -0
- package/src/marker/events/onChannelMarkerFetched.ts +34 -0
- package/src/marker/events/onFeedlMarkerFetched.ts +34 -0
- package/src/marker/events/onMessageMarkerFetched.ts +34 -0
- package/src/marker/events/onSubChannelMarkerFetched.ts +34 -0
- package/src/marker/events/onSubChannelMarkerUpdated.ts +34 -0
- package/src/marker/events/onUserMarkerFetched.ts +34 -0
- package/src/message/api/createMessage.ts +1 -1
- package/src/message/api/getMessage.ts +6 -5
- package/src/message/api/getMessages.ts +7 -6
- package/src/message/api/index.ts +1 -0
- package/src/message/api/markAsDelivered.ts +36 -0
- package/src/message/api/queryMessages.ts +8 -6
- package/src/message/api/tests/createMessage.test.ts +13 -4
- package/src/message/api/tests/getMessage.test.ts +12 -3
- package/src/message/api/tests/getMessages.test.ts +14 -5
- package/src/message/api/tests/markAsDelivered.test.ts +83 -0
- package/src/message/api/tests/queryMessages.test.ts +14 -3
- package/src/message/api/updateMessage.ts +8 -7
- package/src/message/events/index.ts +2 -0
- package/src/message/events/onMessageCreated.ts +14 -41
- package/src/message/events/onMessageDeleted.ts +2 -2
- package/src/message/events/onMessageFlagCleared.ts +2 -2
- package/src/message/events/onMessageFlagged.ts +2 -2
- package/src/message/events/onMessageReactionAdded.ts +2 -2
- package/src/message/events/onMessageReactionRemoved.ts +2 -2
- package/src/message/events/onMessageUnflagged.ts +2 -2
- package/src/message/events/onMessageUpdated.ts +27 -5
- package/src/message/tests/events.test.ts +4 -2
- package/src/message/tests/observers/liveMessage.test.ts +22 -10
- package/src/message/tests/observers/liveMessages.test.ts +25 -18
- package/src/message/utils/index.ts +1 -140
- package/src/message/utils/prepareMessagePayload.ts +182 -0
- package/src/post/api/getPosts.ts +20 -4
- package/src/post/api/tests/getPosts.test.ts +18 -0
- package/src/reaction/events/onReactionAdded.ts +2 -2
- package/src/reaction/events/onReactionRemoved.ts +2 -2
- package/src/reaction/events/onReactorAdded.ts +2 -2
- package/src/reaction/events/onReactorRemoved.ts +2 -2
- package/src/report/api/createReport.ts +2 -1
- package/src/report/api/deleteReport.ts +2 -1
- package/src/subChannel/api/createSubChannel.ts +1 -1
- package/src/subChannel/api/getSubChannel.ts +1 -1
- package/src/subChannel/api/getSubChannels.ts +2 -1
- package/src/subChannel/api/index.ts +3 -0
- package/src/subChannel/api/querySubChannels.ts +1 -1
- package/src/subChannel/api/startReadingAPI.ts +33 -0
- package/src/subChannel/api/stopReadingAPI.ts +33 -0
- package/src/subChannel/api/tests/createSubChannel.test.ts +6 -3
- package/src/subChannel/api/tests/deleteSubChannel.test.ts +7 -5
- package/src/subChannel/api/tests/getSubChannel.test.ts +6 -4
- package/src/subChannel/api/tests/getSubChannels.test.ts +6 -3
- package/src/subChannel/api/tests/updateSubChannel.test.ts +6 -3
- package/src/subChannel/api/updateSubChannel.ts +1 -1
- package/src/subChannel/events/onSubChannelCreated.ts +2 -2
- package/src/subChannel/events/onSubChannelDeleted.ts +2 -2
- package/src/subChannel/events/onSubChannelUpdated.ts +43 -4
- package/src/subChannel/observers/liveSubChannel.ts +2 -0
- package/src/subChannel/observers/tests/liveSubChannel.test.ts +15 -10
- package/src/subChannel/observers/tests/liveSubChannels.test.ts +21 -14
- package/src/subChannel/utils/index.ts +2 -50
- package/src/subChannel/utils/markReadEngine.ts +117 -0
- package/src/subChannel/utils/prepareSubChannelPayload.ts +132 -0
- package/src/utils/liveObject.ts +15 -4
- package/src/utils/tests/client.ts +3 -1
- package/src/utils/tests/dummy/channel.ts +38 -21
- package/src/utils/tests/dummy/comment.ts +2 -2
- package/src/utils/tests/dummy/index.ts +1 -0
- package/src/utils/tests/dummy/marker.ts +68 -0
- package/src/utils/tests/dummy/message.ts +42 -2
- package/src/utils/tests/dummy/post.ts +1 -1
- package/src/utils/tests/dummy/subChannel.ts +16 -5
- package/src/utils/tests/utils.ts +4 -1
- package/dist/channel/api/startReading.d.ts +0 -17
- package/dist/channel/api/startReading.d.ts.map +0 -1
- package/dist/channel/api/stopReading.d.ts +0 -16
- package/dist/channel/api/stopReading.d.ts.map +0 -1
- package/dist/channel/api/tests/startReading.test.d.ts +0 -2
- package/dist/channel/api/tests/startReading.test.d.ts.map +0 -1
- package/dist/channel/api/tests/stopReading.test.d.ts +0 -2
- package/dist/channel/api/tests/stopReading.test.d.ts.map +0 -1
- package/src/channel/api/startReading.ts +0 -57
- package/src/channel/api/stopReading.ts +0 -53
- package/src/channel/api/tests/startReading.test.ts +0 -25
- package/src/channel/api/tests/stopReading.test.ts +0 -25
|
@@ -2,45 +2,62 @@ import { disableCache, enableCache, pullFromCache } from '~/cache/api';
|
|
|
2
2
|
import {
|
|
3
3
|
channelPayload,
|
|
4
4
|
client,
|
|
5
|
+
connectClient,
|
|
5
6
|
conversationChannelPayload,
|
|
7
|
+
convertRawChannelPayload,
|
|
8
|
+
disconnectClient,
|
|
6
9
|
liveChannelPayload,
|
|
7
10
|
rawChannelPayload,
|
|
8
11
|
} from '~/utils/tests';
|
|
9
|
-
import { prepareChannelPayload } from '~/channel/utils';
|
|
10
12
|
|
|
11
13
|
import { createChannel } from '../createChannel';
|
|
12
14
|
|
|
13
15
|
const resPayload = { data: rawChannelPayload };
|
|
14
16
|
|
|
15
17
|
describe('createChannel', () => {
|
|
18
|
+
beforeAll(connectClient);
|
|
19
|
+
afterAll(disconnectClient);
|
|
20
|
+
|
|
16
21
|
// integration_test_id: 9d80fd54-9e6d-454d-8344-6f9436b8e495
|
|
17
22
|
test('it should create a channel for community', async () => {
|
|
18
23
|
client.http.post = jest.fn().mockResolvedValueOnce(resPayload);
|
|
19
24
|
|
|
25
|
+
const {
|
|
26
|
+
channels: [expected],
|
|
27
|
+
} = convertRawChannelPayload(rawChannelPayload);
|
|
28
|
+
|
|
20
29
|
const res = await createChannel({ type: 'community' });
|
|
21
30
|
|
|
22
31
|
expect(res).toBeDefined();
|
|
23
|
-
expect(res.data).toStrictEqual(
|
|
32
|
+
expect(res.data).toStrictEqual(expected);
|
|
24
33
|
});
|
|
25
34
|
|
|
26
35
|
// integration_test_id: cef520ab-027d-4c5b-836c-a7f63ddc5146
|
|
27
36
|
test('it should create a channel for live', async () => {
|
|
28
37
|
client.http.post = jest.fn().mockResolvedValueOnce({ data: liveChannelPayload });
|
|
29
38
|
|
|
39
|
+
const {
|
|
40
|
+
channels: [expected],
|
|
41
|
+
} = convertRawChannelPayload(liveChannelPayload);
|
|
42
|
+
|
|
30
43
|
const res = await createChannel({ type: 'live' });
|
|
31
44
|
|
|
32
45
|
expect(res).toBeDefined();
|
|
33
|
-
expect(res.data).toStrictEqual(
|
|
46
|
+
expect(res.data).toStrictEqual(expected);
|
|
34
47
|
});
|
|
35
48
|
|
|
36
49
|
// integration_test_id: 11a43612-ff6f-4262-874c-4419d342cff1
|
|
37
50
|
test('it should create a channel for conversation', async () => {
|
|
38
51
|
client.http.post = jest.fn().mockResolvedValueOnce({ data: conversationChannelPayload });
|
|
39
52
|
|
|
53
|
+
const {
|
|
54
|
+
channels: [expected],
|
|
55
|
+
} = convertRawChannelPayload(conversationChannelPayload);
|
|
56
|
+
|
|
40
57
|
const res = await createChannel({ type: 'conversation' });
|
|
41
58
|
|
|
42
59
|
expect(res).toBeDefined();
|
|
43
|
-
expect(res.data).toStrictEqual(
|
|
60
|
+
expect(res.data).toStrictEqual(expected);
|
|
44
61
|
});
|
|
45
62
|
|
|
46
63
|
test('it should add channel to cache', async () => {
|
|
@@ -49,11 +66,15 @@ describe('createChannel', () => {
|
|
|
49
66
|
client.http.post = jest.fn().mockResolvedValueOnce(resPayload);
|
|
50
67
|
const { channelId } = channelPayload.channels[0];
|
|
51
68
|
|
|
69
|
+
const {
|
|
70
|
+
channels: [expected],
|
|
71
|
+
} = convertRawChannelPayload(rawChannelPayload);
|
|
72
|
+
|
|
52
73
|
await createChannel({ type: 'community' });
|
|
53
74
|
const data = pullFromCache(['channel', 'get', channelId]);
|
|
54
75
|
|
|
55
76
|
expect(data).toBeDefined();
|
|
56
|
-
expect(data?.data).toStrictEqual(
|
|
77
|
+
expect(data?.data).toStrictEqual(expected);
|
|
57
78
|
|
|
58
79
|
disableCache();
|
|
59
80
|
});
|
|
@@ -65,10 +86,10 @@ describe('createChannel', () => {
|
|
|
65
86
|
const expectedPayload = { type: 'conversation', isDistinct: true };
|
|
66
87
|
|
|
67
88
|
await createChannel({ type: 'conversation' });
|
|
68
|
-
const [
|
|
89
|
+
const [received, receivedPayload] = mockFn.mock.lastCall;
|
|
69
90
|
|
|
70
|
-
expect(
|
|
71
|
-
expect(
|
|
91
|
+
expect(received).toBe(expected);
|
|
92
|
+
expect(receivedPayload).toStrictEqual(expectedPayload);
|
|
72
93
|
});
|
|
73
94
|
|
|
74
95
|
test('it should return an error', async () => {
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { ASCApiError } from '~/core/errors';
|
|
2
2
|
import { disableCache, enableCache, pushToCache } from '~/cache/api';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
client,
|
|
5
|
+
channelQueryResponse,
|
|
6
|
+
convertRawChannelPayload,
|
|
7
|
+
connectClient,
|
|
8
|
+
disconnectClient,
|
|
9
|
+
} from '~/utils/tests';
|
|
4
10
|
|
|
5
11
|
import { pushToTombstone } from '~/cache/api/pushToTombstone';
|
|
6
12
|
import { isInTombstone } from '~/cache/api/isInTombstone';
|
|
7
13
|
|
|
8
|
-
import { prepareChannelPayload } from '~/channel/utils';
|
|
9
|
-
|
|
10
14
|
import { getChannel } from '../getChannel';
|
|
11
15
|
|
|
12
16
|
const { channelId } = channelQueryResponse.data.channels[0];
|
|
13
|
-
const channel =
|
|
17
|
+
const channel = convertRawChannelPayload(channelQueryResponse.data).channels[0];
|
|
14
18
|
|
|
15
19
|
describe('getChannel', () => {
|
|
20
|
+
beforeAll(connectClient);
|
|
21
|
+
afterAll(disconnectClient);
|
|
22
|
+
|
|
16
23
|
// integration_test_id: b331e01c-20db-4f17-979b-b280d8818792
|
|
17
24
|
test('it should return a valid channel', async () => {
|
|
18
25
|
client.http.get = jest.fn().mockResolvedValueOnce(channelQueryResponse);
|
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
import { disableCache, enableCache, pushToCache
|
|
2
|
-
import {
|
|
1
|
+
import { disableCache, enableCache, pushToCache } from '~/cache/api';
|
|
2
|
+
import {
|
|
3
|
+
client,
|
|
4
|
+
connectClient,
|
|
5
|
+
convertRawChannelPayload,
|
|
6
|
+
disconnectClient,
|
|
7
|
+
getChannelsResponse,
|
|
8
|
+
} from '~/utils/tests';
|
|
9
|
+
import { ASCApiError } from '~/core/errors';
|
|
3
10
|
|
|
4
11
|
import { getChannels } from '../getChannels';
|
|
5
|
-
import { prepareChannelPayload } from '~/channel/utils';
|
|
6
|
-
import { ASCApiError } from '~/core/errors';
|
|
7
12
|
|
|
8
13
|
const channelIds = [
|
|
9
14
|
getChannelsResponse.data.channels[0].channelId,
|
|
10
15
|
getChannelsResponse.data.channels[1].channelId,
|
|
11
16
|
getChannelsResponse.data.channels[2].channelId,
|
|
12
17
|
];
|
|
13
|
-
const
|
|
18
|
+
const { channels } = convertRawChannelPayload(getChannelsResponse.data);
|
|
14
19
|
|
|
15
20
|
describe('getChannels', () => {
|
|
21
|
+
beforeAll(connectClient);
|
|
22
|
+
afterAll(disconnectClient);
|
|
23
|
+
|
|
16
24
|
// integration_test_id: ced0cd3b-1714-499d-862e-0284da1c8bb1
|
|
17
25
|
test('it should return a valid channels', async () => {
|
|
18
26
|
client.http.get = jest.fn().mockResolvedValueOnce(getChannelsResponse);
|
|
19
27
|
|
|
20
|
-
const expected =
|
|
28
|
+
const expected = channels;
|
|
21
29
|
const { data: received } = await getChannels(channelIds);
|
|
22
30
|
|
|
23
31
|
expect(received).toStrictEqual(expected);
|
|
@@ -31,7 +39,7 @@ describe('getChannels', () => {
|
|
|
31
39
|
const data = getChannels.locally(channelIds);
|
|
32
40
|
|
|
33
41
|
expect(data).toBeDefined();
|
|
34
|
-
expect(data?.data).toEqual(
|
|
42
|
+
expect(data?.data).toEqual(channels);
|
|
35
43
|
|
|
36
44
|
disableCache();
|
|
37
45
|
});
|
|
@@ -56,14 +64,14 @@ describe('getChannels locally', () => {
|
|
|
56
64
|
|
|
57
65
|
const cachedAt = Date.now();
|
|
58
66
|
|
|
59
|
-
pushToCache(['channel', 'get', channelIds[0]],
|
|
60
|
-
pushToCache(['channel', 'get', channelIds[1]],
|
|
61
|
-
pushToCache(['channel', 'get', channelIds[2]],
|
|
67
|
+
pushToCache(['channel', 'get', channelIds[0]], channels[0], { cachedAt });
|
|
68
|
+
pushToCache(['channel', 'get', channelIds[1]], channels[1], { cachedAt });
|
|
69
|
+
pushToCache(['channel', 'get', channelIds[2]], channels[2], { cachedAt });
|
|
62
70
|
|
|
63
71
|
const data = getChannels.locally(channelIds);
|
|
64
72
|
|
|
65
73
|
expect(data).toBeDefined();
|
|
66
|
-
expect(data?.data).toEqual(
|
|
74
|
+
expect(data?.data).toEqual(channels);
|
|
67
75
|
expect(data?.cachedAt).toEqual(cachedAt);
|
|
68
76
|
|
|
69
77
|
disableCache();
|
|
@@ -84,9 +92,9 @@ describe('getChannels locally', () => {
|
|
|
84
92
|
|
|
85
93
|
const cachedAt = Date.now();
|
|
86
94
|
|
|
87
|
-
pushToCache(['channel', 'get', channelIds[0]],
|
|
88
|
-
pushToCache(['channel', 'get', channelIds[1]],
|
|
89
|
-
pushToCache(['channel', 'get', channelIds[2]],
|
|
95
|
+
pushToCache(['channel', 'get', channelIds[0]], channels[0], { cachedAt });
|
|
96
|
+
pushToCache(['channel', 'get', channelIds[1]], channels[1], { cachedAt: cachedAt + 1 });
|
|
97
|
+
pushToCache(['channel', 'get', channelIds[2]], channels[2], { cachedAt: cachedAt + 2 });
|
|
90
98
|
|
|
91
99
|
const data = getChannels.locally(channelIds);
|
|
92
100
|
|
|
@@ -3,12 +3,21 @@ import { getResolver } from '~/core/model';
|
|
|
3
3
|
import { disableCache, enableCache, pushToCache } from '~/cache/api';
|
|
4
4
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import {
|
|
7
|
+
client,
|
|
8
|
+
channelUserQueryResponse,
|
|
9
|
+
channelUserModel,
|
|
10
|
+
convertRawChannelPayload,
|
|
11
|
+
connectClient,
|
|
12
|
+
disconnectClient,
|
|
13
|
+
} from '~/utils/tests';
|
|
8
14
|
|
|
9
15
|
import { queryChannelMembers } from '../queryChannelMembers';
|
|
10
16
|
|
|
11
17
|
describe('queryChannelMembers', () => {
|
|
18
|
+
beforeAll(connectClient);
|
|
19
|
+
afterAll(disconnectClient);
|
|
20
|
+
|
|
12
21
|
const { channelId } = channelUserQueryResponse.data.channels[0];
|
|
13
22
|
|
|
14
23
|
// integration_test_id: 1e5a4b11-a7f3-496e-a594-22b10ed28a20
|
|
@@ -63,7 +72,7 @@ describe('queryChannelMembers.locally', () => {
|
|
|
63
72
|
enableCache();
|
|
64
73
|
|
|
65
74
|
const { paging, ...payload } = channelUserQueryResponse.data;
|
|
66
|
-
const preparedPayload =
|
|
75
|
+
const preparedPayload = convertRawChannelPayload(payload);
|
|
67
76
|
const { channelUsers } = preparedPayload;
|
|
68
77
|
|
|
69
78
|
ingestInCache(preparedPayload);
|
|
@@ -90,7 +99,7 @@ describe('queryChannelMembers.locally', () => {
|
|
|
90
99
|
enableCache();
|
|
91
100
|
|
|
92
101
|
const { paging, ...payload } = channelUserQueryResponse.data;
|
|
93
|
-
const preparedPayload =
|
|
102
|
+
const preparedPayload = convertRawChannelPayload(payload);
|
|
94
103
|
const { channelUsers } = preparedPayload;
|
|
95
104
|
|
|
96
105
|
// ingest incomplete data
|
|
@@ -3,20 +3,25 @@ import { getResolver } from '~/core/model';
|
|
|
3
3
|
import { disableCache, enableCache, pushToCache } from '~/cache/api';
|
|
4
4
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
5
|
|
|
6
|
-
import { prepareChannelPayload } from '~/channel/utils';
|
|
7
6
|
import {
|
|
8
7
|
client,
|
|
9
8
|
channelQueryResponse,
|
|
10
9
|
channelTagQueryResponse,
|
|
11
10
|
channelExcludeTagQueryResponse,
|
|
11
|
+
convertRawChannelPayload,
|
|
12
|
+
connectClient,
|
|
13
|
+
disconnectClient,
|
|
12
14
|
} from '~/utils/tests';
|
|
13
15
|
|
|
14
16
|
import { queryChannels } from '../queryChannels';
|
|
15
17
|
|
|
16
18
|
describe('queryChannels', () => {
|
|
19
|
+
beforeAll(connectClient);
|
|
20
|
+
afterAll(disconnectClient);
|
|
21
|
+
|
|
17
22
|
// integration_test_id: 06c14dab-4799-4f26-9e52-be7c12b3bdb3
|
|
18
23
|
test('it should return channels', async () => {
|
|
19
|
-
const expected =
|
|
24
|
+
const { channels: expected } = convertRawChannelPayload(channelQueryResponse.data);
|
|
20
25
|
client.http.get = jest.fn().mockResolvedValue(channelQueryResponse);
|
|
21
26
|
|
|
22
27
|
const { data } = await queryChannels();
|
|
@@ -28,25 +33,30 @@ describe('queryChannels', () => {
|
|
|
28
33
|
test('it should return channels match with membership type', async () => {
|
|
29
34
|
// Actually there is no any flag to tell about this list is relate to membership type
|
|
30
35
|
// But need to implement this case to match with our test list
|
|
31
|
-
const expected =
|
|
36
|
+
const { channels: expected } = convertRawChannelPayload(channelQueryResponse.data);
|
|
32
37
|
client.http.get = jest.fn().mockResolvedValue(channelQueryResponse);
|
|
38
|
+
|
|
33
39
|
const { data } = await queryChannels({ membership: 'member' });
|
|
40
|
+
|
|
34
41
|
expect(data).toEqual(expected);
|
|
35
42
|
});
|
|
36
43
|
|
|
37
44
|
// integration_test_id: 92329d41-9403-44e7-979f-ed227e6ab120
|
|
38
45
|
test('it should return channels match with tags query type', async () => {
|
|
39
|
-
const expected =
|
|
46
|
+
const { channels: expected } = convertRawChannelPayload(channelTagQueryResponse.data);
|
|
40
47
|
client.http.get = jest.fn().mockResolvedValue(channelTagQueryResponse);
|
|
48
|
+
|
|
41
49
|
const { data } = await queryChannels({ tags: ['tag1'] });
|
|
50
|
+
|
|
42
51
|
expect(data).toEqual(expected);
|
|
43
52
|
expect(data[0].tags).toContain('tag1');
|
|
44
53
|
});
|
|
45
54
|
|
|
46
55
|
// integration_test_id: 5249778c-6d99-4e2f-9b80-2f4ea6ae1833
|
|
47
56
|
test('it should return channels without tags which defined in exclude options', async () => {
|
|
48
|
-
const expected =
|
|
57
|
+
const { channels: expected } = convertRawChannelPayload(channelExcludeTagQueryResponse.data);
|
|
49
58
|
client.http.get = jest.fn().mockResolvedValue(channelExcludeTagQueryResponse);
|
|
59
|
+
|
|
50
60
|
const { data } = await queryChannels({ excludeTags: ['tag1'] });
|
|
51
61
|
expect(data).toEqual(expected);
|
|
52
62
|
|
|
@@ -82,7 +92,7 @@ describe('queryChannels.locally', () => {
|
|
|
82
92
|
enableCache();
|
|
83
93
|
|
|
84
94
|
const { paging, ...payload } = channelQueryResponse.data;
|
|
85
|
-
const data =
|
|
95
|
+
const data = convertRawChannelPayload(payload);
|
|
86
96
|
const { channels } = data;
|
|
87
97
|
|
|
88
98
|
ingestInCache(data);
|
|
@@ -101,7 +111,7 @@ describe('queryChannels.locally', () => {
|
|
|
101
111
|
enableCache();
|
|
102
112
|
|
|
103
113
|
const { paging, ...payload } = channelQueryResponse.data;
|
|
104
|
-
const data =
|
|
114
|
+
const data = convertRawChannelPayload(payload);
|
|
105
115
|
const { channels } = data;
|
|
106
116
|
|
|
107
117
|
// ingest incomplete data
|
|
@@ -127,9 +137,9 @@ describe('queryChannels.locally', () => {
|
|
|
127
137
|
|
|
128
138
|
const { data } = channelQueryResponse;
|
|
129
139
|
const { paging, ...payload } = data;
|
|
130
|
-
const { channels: expected } =
|
|
140
|
+
const { channels: expected } = convertRawChannelPayload(payload);
|
|
131
141
|
|
|
132
|
-
ingestInCache(
|
|
142
|
+
ingestInCache(convertRawChannelPayload(data));
|
|
133
143
|
|
|
134
144
|
pushToCache(cacheKey, { channels: payload.channels.map(getResolver('channel')), paging });
|
|
135
145
|
|
|
@@ -35,7 +35,7 @@ export const unbanChannelMembers = async (
|
|
|
35
35
|
},
|
|
36
36
|
);
|
|
37
37
|
|
|
38
|
-
const preparedPayload = prepareChannelPayload(payload);
|
|
38
|
+
const preparedPayload = await prepareChannelPayload(payload);
|
|
39
39
|
|
|
40
40
|
const cachedAt = client.cache && Date.now();
|
|
41
41
|
if (client.cache) ingestInCache(preparedPayload, { cachedAt });
|
|
@@ -34,7 +34,7 @@ export const updateChannel = async (
|
|
|
34
34
|
patch,
|
|
35
35
|
);
|
|
36
36
|
|
|
37
|
-
const data = prepareChannelPayload(payload);
|
|
37
|
+
const data = await prepareChannelPayload(payload);
|
|
38
38
|
|
|
39
39
|
const cachedAt = client.cache && Date.now();
|
|
40
40
|
if (client.cache) ingestInCache(data, { cachedAt });
|
|
@@ -23,8 +23,8 @@ import { prepareChannelPayload } from '../utils';
|
|
|
23
23
|
export const onChannelCreated = (callback: Amity.Listener<Amity.Channel>) => {
|
|
24
24
|
const client = getActiveClient();
|
|
25
25
|
|
|
26
|
-
const filter = (payload: Amity.ChannelPayload) => {
|
|
27
|
-
const data = prepareChannelPayload(payload);
|
|
26
|
+
const filter = async (payload: Amity.ChannelPayload) => {
|
|
27
|
+
const data = await prepareChannelPayload(payload);
|
|
28
28
|
|
|
29
29
|
ingestInCache(data);
|
|
30
30
|
callback(data.channels[0]);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
2
1
|
import { createEventSubscriber } from '~/core/events';
|
|
3
2
|
|
|
3
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
4
4
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
5
|
|
|
6
|
-
import { prepareChannelPayload } from '../utils';
|
|
6
|
+
import { prepareChannelPayload } from '../utils/prepareChannelPayload';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* ```js
|
|
@@ -23,8 +23,8 @@ import { prepareChannelPayload } from '../utils';
|
|
|
23
23
|
export const onChannelDeleted = (callback: Amity.Listener<Amity.Channel>) => {
|
|
24
24
|
const client = getActiveClient();
|
|
25
25
|
|
|
26
|
-
const filter = (payload: Amity.ChannelPayload) => {
|
|
27
|
-
const data = prepareChannelPayload(payload);
|
|
26
|
+
const filter = async (payload: Amity.ChannelPayload) => {
|
|
27
|
+
const data = await prepareChannelPayload(payload);
|
|
28
28
|
|
|
29
29
|
ingestInCache(data);
|
|
30
30
|
callback(data.channels[0]);
|
|
@@ -25,8 +25,8 @@ export const onChannelJoined = (
|
|
|
25
25
|
) => {
|
|
26
26
|
const client = getActiveClient();
|
|
27
27
|
|
|
28
|
-
const filter = (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
-
const preparedPayload = prepareChannelPayload(payload);
|
|
28
|
+
const filter = async (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
+
const preparedPayload = await prepareChannelPayload(payload);
|
|
30
30
|
const { channels, channelUsers } = preparedPayload;
|
|
31
31
|
|
|
32
32
|
ingestInCache(preparedPayload);
|
|
@@ -25,8 +25,8 @@ export const onChannelLeft = (
|
|
|
25
25
|
) => {
|
|
26
26
|
const client = getActiveClient();
|
|
27
27
|
|
|
28
|
-
const filter = (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
-
const preparedPayload = prepareChannelPayload(payload);
|
|
28
|
+
const filter = async (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
+
const preparedPayload = await prepareChannelPayload(payload);
|
|
30
30
|
const { channels, channelUsers } = preparedPayload;
|
|
31
31
|
|
|
32
32
|
ingestInCache(preparedPayload);
|
|
@@ -24,8 +24,8 @@ export const onChannelMemberAdded = (
|
|
|
24
24
|
): Amity.Unsubscriber => {
|
|
25
25
|
const client = getActiveClient();
|
|
26
26
|
|
|
27
|
-
const filter = (payload: Amity.ChannelMembershipPayload) => {
|
|
28
|
-
const preparedPayload = prepareChannelPayload(payload);
|
|
27
|
+
const filter = async (payload: Amity.ChannelMembershipPayload) => {
|
|
28
|
+
const preparedPayload = await prepareChannelPayload(payload);
|
|
29
29
|
const { channels, channelUsers } = preparedPayload;
|
|
30
30
|
|
|
31
31
|
ingestInCache(preparedPayload);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
2
1
|
import { createEventSubscriber } from '~/core/events';
|
|
3
2
|
|
|
3
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
4
4
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
5
|
|
|
6
6
|
import { prepareChannelPayload } from '../utils';
|
|
@@ -25,8 +25,8 @@ export const onChannelMemberBanned = (
|
|
|
25
25
|
) => {
|
|
26
26
|
const client = getActiveClient();
|
|
27
27
|
|
|
28
|
-
const filter = (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
-
const preparedPayload = prepareChannelPayload(payload);
|
|
28
|
+
const filter = async (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
+
const preparedPayload = await prepareChannelPayload(payload);
|
|
30
30
|
const { channels, channelUsers } = preparedPayload;
|
|
31
31
|
|
|
32
32
|
ingestInCache(preparedPayload);
|
|
@@ -25,8 +25,8 @@ export const onChannelMemberRemoved = (
|
|
|
25
25
|
) => {
|
|
26
26
|
const client = getActiveClient();
|
|
27
27
|
|
|
28
|
-
const filter = (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
-
const preparedPayload = prepareChannelPayload(payload);
|
|
28
|
+
const filter = async (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
+
const preparedPayload = await prepareChannelPayload(payload);
|
|
30
30
|
const { channels, channelUsers } = preparedPayload;
|
|
31
31
|
|
|
32
32
|
ingestInCache(preparedPayload);
|
|
@@ -25,8 +25,8 @@ export const onChannelMemberUnbanned = (
|
|
|
25
25
|
) => {
|
|
26
26
|
const client = getActiveClient();
|
|
27
27
|
|
|
28
|
-
const filter = (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
-
const preparedPayload = prepareChannelPayload(payload);
|
|
28
|
+
const filter = async (payload: Amity.ChannelMembershipPayload) => {
|
|
29
|
+
const preparedPayload = await prepareChannelPayload(payload);
|
|
30
30
|
const { channels, channelUsers } = preparedPayload;
|
|
31
31
|
|
|
32
32
|
ingestInCache(preparedPayload);
|
|
@@ -23,8 +23,8 @@ import { prepareChannelPayload } from '../utils';
|
|
|
23
23
|
export const onChannelMuted = (callback: Amity.Listener<Amity.Channel>) => {
|
|
24
24
|
const client = getActiveClient();
|
|
25
25
|
|
|
26
|
-
const filter = (payload: Amity.ChannelPayload) => {
|
|
27
|
-
const data = prepareChannelPayload(payload);
|
|
26
|
+
const filter = async (payload: Amity.ChannelPayload) => {
|
|
27
|
+
const data = await prepareChannelPayload(payload);
|
|
28
28
|
|
|
29
29
|
ingestInCache(data);
|
|
30
30
|
callback(data.channels[0]);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { pullFromCache, upsertInCache } from '~/cache/api';
|
|
1
2
|
import { getActiveClient } from '~/client/api';
|
|
2
3
|
import { createEventSubscriber } from '~/core/events';
|
|
3
4
|
|
|
4
5
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
6
|
|
|
6
|
-
import { prepareChannelPayload } from '../utils';
|
|
7
|
+
import { prepareChannelPayload, updateChannelMarker } from '../utils';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* ```js
|
|
@@ -23,18 +24,38 @@ import { prepareChannelPayload } from '../utils';
|
|
|
23
24
|
export const onChannelUpdated = (callback: Amity.Listener<Amity.Channel>) => {
|
|
24
25
|
const client = getActiveClient();
|
|
25
26
|
|
|
26
|
-
const filter = (payload: Amity.ChannelPayload) => {
|
|
27
|
-
const data = prepareChannelPayload(payload);
|
|
27
|
+
const filter = async (payload: Amity.ChannelPayload) => {
|
|
28
|
+
const data = await prepareChannelPayload(payload);
|
|
28
29
|
|
|
29
30
|
ingestInCache(data);
|
|
30
31
|
callback(data.channels[0]);
|
|
31
32
|
};
|
|
32
33
|
|
|
34
|
+
const channelMarkerChangeHandler = async (
|
|
35
|
+
rawPayload: MakeRequired<Amity.ChannelMarkerPayload, 'userEntityMarkers'>,
|
|
36
|
+
) => {
|
|
37
|
+
const marker = rawPayload.userEntityMarkers[0];
|
|
38
|
+
const cacheKey = ['channel', 'get', marker.entityId];
|
|
39
|
+
const channel = pullFromCache<Amity.Channel>(cacheKey)?.data;
|
|
40
|
+
|
|
41
|
+
if (!channel) return;
|
|
42
|
+
|
|
43
|
+
const updated = updateChannelMarker(channel, marker);
|
|
44
|
+
upsertInCache(cacheKey, updated);
|
|
45
|
+
callback(updated);
|
|
46
|
+
};
|
|
47
|
+
|
|
33
48
|
const disposers = [
|
|
34
49
|
createEventSubscriber(client, 'onChannelUpdated', 'channel.updated', filter),
|
|
35
|
-
createEventSubscriber(client, '
|
|
50
|
+
createEventSubscriber(client, 'onChannelUpdated', 'local.channel.updated', payload =>
|
|
36
51
|
callback(payload.channels[0]),
|
|
37
52
|
),
|
|
53
|
+
createEventSubscriber(
|
|
54
|
+
client,
|
|
55
|
+
'onChannelUpdated',
|
|
56
|
+
'local.channelMarker.fetched',
|
|
57
|
+
channelMarkerChangeHandler,
|
|
58
|
+
),
|
|
38
59
|
];
|
|
39
60
|
|
|
40
61
|
return () => {
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
client,
|
|
6
6
|
connectClient,
|
|
7
7
|
disconnectClient,
|
|
8
|
+
pause,
|
|
8
9
|
rawChannelUser,
|
|
9
10
|
user11,
|
|
10
11
|
} from '~/utils/tests';
|
|
@@ -30,12 +31,14 @@ describe('onChannelCreated event', () => {
|
|
|
30
31
|
users: [user11],
|
|
31
32
|
};
|
|
32
33
|
|
|
33
|
-
test('it should call callback when channel have created', () => {
|
|
34
|
+
test('it should call callback when channel have created', async () => {
|
|
34
35
|
const callback = jest.fn();
|
|
35
36
|
|
|
36
37
|
const unsub = onChannelCreated(callback);
|
|
37
38
|
client.emitter.emit('channel.created', channelPayload);
|
|
38
39
|
|
|
40
|
+
await pause();
|
|
41
|
+
|
|
39
42
|
unsub();
|
|
40
43
|
|
|
41
44
|
expect(callback).toHaveBeenCalled();
|
|
@@ -6,9 +6,11 @@ import {
|
|
|
6
6
|
client,
|
|
7
7
|
connectClient,
|
|
8
8
|
disconnectClient,
|
|
9
|
+
pause,
|
|
9
10
|
rawChannelUser,
|
|
10
11
|
user11,
|
|
11
12
|
} from '~/utils/tests';
|
|
13
|
+
|
|
12
14
|
import { onChannelJoined } from '../onChannelJoined';
|
|
13
15
|
|
|
14
16
|
describe('onChannelJoined event', () => {
|
|
@@ -31,12 +33,14 @@ describe('onChannelJoined event', () => {
|
|
|
31
33
|
users: [user11],
|
|
32
34
|
};
|
|
33
35
|
|
|
34
|
-
test('it should call callback when have someone joined channel', () => {
|
|
36
|
+
test('it should call callback when have someone joined channel', async () => {
|
|
35
37
|
const callback = jest.fn();
|
|
36
38
|
|
|
37
39
|
const unsub = onChannelJoined(callback);
|
|
38
40
|
client.emitter.emit('channel.joined', channelPayload);
|
|
39
41
|
|
|
42
|
+
await pause();
|
|
43
|
+
|
|
40
44
|
unsub();
|
|
41
45
|
|
|
42
46
|
expect(callback).toHaveBeenCalled();
|
|
@@ -8,7 +8,9 @@ import {
|
|
|
8
8
|
rawChannelUser,
|
|
9
9
|
channelRaw1,
|
|
10
10
|
channelUser,
|
|
11
|
+
pause,
|
|
11
12
|
} from '~/utils/tests';
|
|
13
|
+
|
|
12
14
|
import { onChannelMemberAdded } from '../onChannelMemberAdded';
|
|
13
15
|
|
|
14
16
|
describe('onChannelMemberAdded event', () => {
|
|
@@ -31,12 +33,14 @@ describe('onChannelMemberAdded event', () => {
|
|
|
31
33
|
users: [user11],
|
|
32
34
|
};
|
|
33
35
|
|
|
34
|
-
test('it should call callback when have someone add member to channel', () => {
|
|
36
|
+
test('it should call callback when have someone add member to channel', async () => {
|
|
35
37
|
const callback = jest.fn();
|
|
36
38
|
|
|
37
39
|
const unsub = onChannelMemberAdded(callback);
|
|
38
40
|
client.emitter.emit('channel.membersAdded', channelPayload);
|
|
39
41
|
|
|
42
|
+
await pause();
|
|
43
|
+
|
|
40
44
|
unsub();
|
|
41
45
|
|
|
42
46
|
expect(callback).toHaveBeenCalled();
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
user11,
|
|
11
11
|
user13,
|
|
12
12
|
channelRaw1,
|
|
13
|
+
pause,
|
|
13
14
|
} from '~/utils/tests';
|
|
14
15
|
|
|
15
16
|
import { onChannelMemberBanned } from '../onChannelMemberBanned';
|
|
@@ -34,12 +35,14 @@ describe('onChannelMemberBanned event', () => {
|
|
|
34
35
|
users: [user11, user13],
|
|
35
36
|
};
|
|
36
37
|
|
|
37
|
-
test('it should call callback with channel and banned member', () => {
|
|
38
|
+
test('it should call callback with channel and banned member', async () => {
|
|
38
39
|
const callback = jest.fn();
|
|
39
40
|
|
|
40
41
|
const unsub = onChannelMemberBanned(callback);
|
|
41
42
|
client.emitter.emit('channel.banned', channelPayload);
|
|
42
43
|
|
|
44
|
+
await pause();
|
|
45
|
+
|
|
43
46
|
unsub();
|
|
44
47
|
|
|
45
48
|
expect(callback).toHaveBeenCalled();
|