@100mslive/hms-video-store 0.2.82-alpha.1 → 0.2.82-alpha.13
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/core/IHMSActions.d.ts +1 -1
- package/dist/core/hmsSDKStore/HMSSDKActions.d.ts +1 -1
- package/dist/core/hmsSDKStore/sdkTypes.d.ts +3 -3
- package/dist/core/index.d.ts +2 -2
- package/dist/core/selectors/selectors.d.ts +3 -9
- package/dist/core/selectors/selectorsByID.d.ts +1 -1
- package/dist/core/selectors/selectorsByReference.d.ts +1 -1
- package/dist/hms-video-store.cjs.js +1 -1
- package/dist/hms-video-store.esm.js +1 -1
- package/package.json +5 -36
- package/src/common/ui-logger.ts +0 -88
- package/src/core/IHMSActions.ts +0 -317
- package/src/core/IHMSNotifications.ts +0 -16
- package/src/core/IHMSStore.ts +0 -59
- package/src/core/hmsSDKStore/HMSNotifications.ts +0 -170
- package/src/core/hmsSDKStore/HMSPlaylist.ts +0 -77
- package/src/core/hmsSDKStore/HMSReactiveStore.ts +0 -262
- package/src/core/hmsSDKStore/HMSSDKActions.ts +0 -1113
- package/src/core/hmsSDKStore/adapter.ts +0 -234
- package/src/core/hmsSDKStore/common/mapping.ts +0 -32
- package/src/core/hmsSDKStore/internalTypes.ts +0 -8
- package/src/core/hmsSDKStore/sdkTypes.ts +0 -51
- package/src/core/hmsSDKStore/sdkUtils/ActionBatcher.ts +0 -60
- package/src/core/hmsSDKStore/sdkUtils/sdkUtils.ts +0 -5
- package/src/core/hmsSDKStore/sdkUtils/storeMergeUtils.ts +0 -95
- package/src/core/index.ts +0 -16
- package/src/core/schema/device-change.ts +0 -14
- package/src/core/schema/error.ts +0 -13
- package/src/core/schema/index.ts +0 -11
- package/src/core/schema/message.ts +0 -35
- package/src/core/schema/notification.ts +0 -41
- package/src/core/schema/peer.ts +0 -72
- package/src/core/schema/playlist.ts +0 -114
- package/src/core/schema/requests.ts +0 -36
- package/src/core/schema/role.ts +0 -5
- package/src/core/schema/room.ts +0 -26
- package/src/core/schema/schema.ts +0 -94
- package/src/core/schema/settings.ts +0 -5
- package/src/core/selectors/derivedSelectors.ts +0 -75
- package/src/core/selectors/index.ts +0 -5
- package/src/core/selectors/playlistselectors.ts +0 -71
- package/src/core/selectors/selectorUtils.ts +0 -63
- package/src/core/selectors/selectors.ts +0 -347
- package/src/core/selectors/selectorsByID.ts +0 -370
- package/src/core/selectors/selectorsByReference.ts +0 -34
- package/src/index.ts +0 -1
- package/src/test/fakeStore.ts +0 -272
- package/src/test/fixtures.ts +0 -22
- package/src/test/integration/.gitkeep +0 -0
- package/src/test/unit/HMSNotifications.test.ts +0 -105
- package/src/test/unit/reactiveStore.test.ts +0 -129
- package/src/test/unit/roleSelectors.test.ts +0 -78
- package/src/test/unit/selectors.test.ts +0 -316
- package/src/test/unit/selectorsByReference.test.ts +0 -23
- package/src/test/unit/storeMergeUtils.test.ts +0 -165
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { HMSTrack as SDKTrack } from '@100mslive/hms-video';
|
|
2
|
-
import { HMSPeer, HMSPeerID, HMSTrack, HMSTrackID } from '../../core';
|
|
3
|
-
import { mergeNewPeersInDraft, mergeNewTracksInDraft } from '../../core/hmsSDKStore/sdkUtils/storeMergeUtils';
|
|
4
|
-
import { makeFakePeer, makeFakeTrack } from '../fixtures';
|
|
5
|
-
|
|
6
|
-
type trackMap = Record<HMSTrackID, HMSTrack>;
|
|
7
|
-
type peerMap = Record<HMSTrackID, HMSPeer>;
|
|
8
|
-
let newTracks: Record<HMSTrackID, Partial<HMSTrack>>;
|
|
9
|
-
|
|
10
|
-
describe('tracks merge is happening properly', () => {
|
|
11
|
-
let fakeTrack: HMSTrack;
|
|
12
|
-
let draftTracksCopy: Record<HMSTrackID, Partial<HMSTrack>>;
|
|
13
|
-
let draftTracks: Record<HMSTrackID, Partial<HMSTrack>>;
|
|
14
|
-
beforeEach(() => {
|
|
15
|
-
draftTracks = {};
|
|
16
|
-
newTracks = {};
|
|
17
|
-
draftTracksCopy = draftTracks;
|
|
18
|
-
fakeTrack = makeFakeTrack();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
const expectNoReferenceChange = () => {
|
|
22
|
-
expect(draftTracks).toBe(draftTracksCopy);
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
test('no errors with empty tracks', () => {
|
|
26
|
-
mergeNewTracksInDraft(draftTracks as trackMap, newTracks);
|
|
27
|
-
expectNoReferenceChange();
|
|
28
|
-
expect(draftTracks).toEqual({});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test('track is deleted from draft if gone', () => {
|
|
32
|
-
draftTracks[fakeTrack.id] = fakeTrack;
|
|
33
|
-
mergeNewTracksInDraft(draftTracks as trackMap, newTracks);
|
|
34
|
-
expectNoReferenceChange();
|
|
35
|
-
expect(draftTracks).toEqual({});
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test('new track is added to draft', () => {
|
|
39
|
-
newTracks[fakeTrack.id] = fakeTrack;
|
|
40
|
-
mergeNewTracksInDraft(draftTracks as trackMap, newTracks);
|
|
41
|
-
expectNoReferenceChange();
|
|
42
|
-
expect(draftTracks).toEqual(newTracks);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
test('old track update maintains reference on update', () => {
|
|
46
|
-
const clonedTrack = { ...fakeTrack, enabled: true, height: 357 };
|
|
47
|
-
draftTracks[fakeTrack.id] = fakeTrack;
|
|
48
|
-
newTracks[clonedTrack.id] = clonedTrack;
|
|
49
|
-
mergeNewTracksInDraft(draftTracks as trackMap, newTracks);
|
|
50
|
-
expectNoReferenceChange();
|
|
51
|
-
expect(draftTracks[fakeTrack.id]).toBe(fakeTrack);
|
|
52
|
-
expect(fakeTrack.enabled).toBe(true);
|
|
53
|
-
expect(fakeTrack.height).toBe(357);
|
|
54
|
-
expect(fakeTrack).not.toBe(clonedTrack);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
test('partial update does not override older data', () => {
|
|
58
|
-
const clonedTrack = { ...fakeTrack };
|
|
59
|
-
fakeTrack.height = 450;
|
|
60
|
-
draftTracks[fakeTrack.id] = fakeTrack;
|
|
61
|
-
newTracks[clonedTrack.id] = clonedTrack;
|
|
62
|
-
mergeNewTracksInDraft(draftTracks as trackMap, newTracks);
|
|
63
|
-
expectNoReferenceChange();
|
|
64
|
-
expect(fakeTrack.height).toBe(450);
|
|
65
|
-
expect(clonedTrack.height).toBeUndefined();
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
describe('peers merge is happening properly', () => {
|
|
70
|
-
let fakePeer: HMSPeer;
|
|
71
|
-
let draftPeersCopy: Record<HMSPeerID, Partial<HMSPeer>>;
|
|
72
|
-
const draftPeers: Record<HMSPeerID, Partial<HMSPeer>> = {};
|
|
73
|
-
const newPeers: Record<HMSPeerID, Partial<HMSPeer>> = {};
|
|
74
|
-
const newSDKTracks: Record<HMSTrackID, SDKTrack> = {};
|
|
75
|
-
beforeEach(() => {
|
|
76
|
-
newTracks = {};
|
|
77
|
-
draftPeersCopy = draftPeers;
|
|
78
|
-
fakePeer = makeFakePeer();
|
|
79
|
-
const audio = makeFakeTrack('audio');
|
|
80
|
-
const video = makeFakeTrack('video');
|
|
81
|
-
const screenshare = makeFakeTrack('video');
|
|
82
|
-
newTracks[audio.id] = audio;
|
|
83
|
-
newTracks[video.id] = video;
|
|
84
|
-
newTracks[screenshare.id] = screenshare;
|
|
85
|
-
fakePeer.audioTrack = audio.id;
|
|
86
|
-
fakePeer.videoTrack = video.id;
|
|
87
|
-
fakePeer.auxiliaryTracks = [screenshare.id];
|
|
88
|
-
newSDKTracks[audio.id] = {} as SDKTrack;
|
|
89
|
-
newSDKTracks[video.id] = {} as SDKTrack;
|
|
90
|
-
newSDKTracks[screenshare.id] = {} as SDKTrack;
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
const expectNoReferenceChange = () => {
|
|
94
|
-
expect(draftPeers).toBe(draftPeersCopy);
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
test('no errors with empty peers', () => {
|
|
98
|
-
mergeNewPeersInDraft(draftPeers as peerMap, newPeers);
|
|
99
|
-
expectNoReferenceChange();
|
|
100
|
-
expect(draftPeers).toEqual({});
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
test('peer is deleted from draft if gone', () => {
|
|
104
|
-
draftPeers[fakePeer.id] = fakePeer;
|
|
105
|
-
mergeNewPeersInDraft(draftPeers as peerMap, newPeers);
|
|
106
|
-
expectNoReferenceChange();
|
|
107
|
-
expect(draftPeers).toEqual({});
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
test('new peer is added to draft', () => {
|
|
111
|
-
newPeers[fakePeer.id] = fakePeer;
|
|
112
|
-
mergeNewPeersInDraft(draftPeers as peerMap, newPeers);
|
|
113
|
-
expectNoReferenceChange();
|
|
114
|
-
expect(draftPeers).toEqual(newPeers);
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
test('old peer update maintains reference on update', () => {
|
|
118
|
-
const clonedPeer = {
|
|
119
|
-
...fakePeer,
|
|
120
|
-
roleName: 'host',
|
|
121
|
-
auxiliaryTracks: [...fakePeer.auxiliaryTracks],
|
|
122
|
-
};
|
|
123
|
-
draftPeers[fakePeer.id] = fakePeer;
|
|
124
|
-
newPeers[clonedPeer.id] = clonedPeer;
|
|
125
|
-
mergeNewPeersInDraft(draftPeers as peerMap, newPeers);
|
|
126
|
-
expectNoReferenceChange();
|
|
127
|
-
expect(draftPeers[fakePeer.id]).toBe(fakePeer);
|
|
128
|
-
expect(draftPeers[fakePeer.id].auxiliaryTracks).toBe(fakePeer.auxiliaryTracks);
|
|
129
|
-
expect(fakePeer.name).toBe('test');
|
|
130
|
-
expect(fakePeer.roleName).toBe('host');
|
|
131
|
-
expect(fakePeer).not.toBe(clonedPeer); // test object.assign happened properly
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
test('partial update does not override older data', () => {
|
|
135
|
-
const clonedPeer = { ...fakePeer };
|
|
136
|
-
fakePeer.roleName = 'random';
|
|
137
|
-
draftPeers[fakePeer.id] = fakePeer;
|
|
138
|
-
newPeers[clonedPeer.id] = clonedPeer;
|
|
139
|
-
mergeNewPeersInDraft(draftPeers as peerMap, newPeers);
|
|
140
|
-
expectNoReferenceChange();
|
|
141
|
-
expect(fakePeer.roleName).toBe('random');
|
|
142
|
-
expect(clonedPeer.roleName).toBeUndefined();
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
test('replace track does not change peer.videoTrack', () => {
|
|
146
|
-
fakePeer.isLocal = true;
|
|
147
|
-
draftPeers[fakePeer.id] = fakePeer;
|
|
148
|
-
const newVideo = makeFakeTrack('video');
|
|
149
|
-
const clonedPeer = { ...fakePeer, videoTrack: newVideo.id };
|
|
150
|
-
const newSDKTrack = {} as SDKTrack;
|
|
151
|
-
newSDKTracks[newVideo.id] = newSDKTrack;
|
|
152
|
-
if (fakePeer.videoTrack) {
|
|
153
|
-
// remove older one
|
|
154
|
-
delete newTracks[fakePeer.videoTrack];
|
|
155
|
-
delete newSDKTracks[fakePeer.videoTrack];
|
|
156
|
-
}
|
|
157
|
-
newTracks[newVideo.id] = newVideo;
|
|
158
|
-
newPeers[clonedPeer.id] = clonedPeer;
|
|
159
|
-
mergeNewPeersInDraft(draftPeers as peerMap, newPeers);
|
|
160
|
-
expect(draftPeers[fakePeer.id]).toBe(fakePeer);
|
|
161
|
-
expect(draftPeers[fakePeer.id].videoTrack).toBe(fakePeer.videoTrack);
|
|
162
|
-
// ensure the unchanged video track id can be used to get the new sdk track
|
|
163
|
-
expect(newSDKTrack).toBe(fakePeer.videoTrack && newSDKTracks[fakePeer.videoTrack]);
|
|
164
|
-
});
|
|
165
|
-
});
|