@webex/media-helpers 3.0.0-bnr.3 → 3.0.0-bnr.4
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/package.json +3 -3
- package/test/unit/spec/webrtc-core.js +99 -29
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/media-helpers",
|
|
3
|
-
"version": "3.0.0-bnr.
|
|
3
|
+
"version": "3.0.0-bnr.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
]
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@webex/test-helper-chai": "
|
|
27
|
-
"@webex/test-helper-mock-webex": "
|
|
26
|
+
"@webex/test-helper-chai": "workspace:^",
|
|
27
|
+
"@webex/test-helper-mock-webex": "workspace:^",
|
|
28
28
|
"sinon": "^9.2.4"
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -1,45 +1,115 @@
|
|
|
1
|
-
import {assert} from '@webex/test-helper-chai';
|
|
1
|
+
import {assert, expect} from '@webex/test-helper-chai';
|
|
2
2
|
import sinon from 'sinon';
|
|
3
|
-
import {LocalCameraTrack, LocalMicrophoneTrack} from '@webex/media-helpers';
|
|
3
|
+
import {LocalCameraTrack, LocalMicrophoneTrack, LocalMicrophoneTrackEvents, LocalCameraTrackEvents, LocalDisplayTrack, createCameraTrack, createMicrophoneTrack, createDisplayTrack} from '@webex/media-helpers';
|
|
4
|
+
import * as wcmetracks from '@webex/internal-media-core';
|
|
4
5
|
|
|
5
6
|
describe('media-helpers', () => {
|
|
6
7
|
describe('webrtc-core', () => {
|
|
7
8
|
|
|
8
9
|
const classesToTest = [
|
|
9
|
-
{className: LocalCameraTrack, title: 'LocalCameraTrack'},
|
|
10
|
-
{className: LocalMicrophoneTrack, title: 'LocalMicrophoneTrack'},
|
|
10
|
+
{className: LocalCameraTrack, title: 'LocalCameraTrack', event: LocalCameraTrackEvents, createFn: createCameraTrack, spyFn: 'createCameraTrack'},
|
|
11
|
+
{className: LocalMicrophoneTrack, title: 'LocalMicrophoneTrack', event: LocalMicrophoneTrackEvents, createFn: createMicrophoneTrack, spyFn: 'createMicrophoneTrack'},
|
|
11
12
|
];
|
|
12
13
|
|
|
13
|
-
classesToTest.forEach(({className, title}) =>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
14
|
+
classesToTest.forEach(({className, title, event, createFn, spyFn}) =>
|
|
15
|
+
describe(title, () => {
|
|
16
|
+
const fakeStream = {
|
|
17
|
+
getTracks: sinon.stub().returns([{
|
|
18
|
+
label: 'fake track',
|
|
19
|
+
id: 'fake track id',
|
|
20
|
+
enabled: true,
|
|
21
|
+
}])
|
|
22
|
+
};
|
|
23
|
+
const track = new className(fakeStream);
|
|
24
|
+
|
|
25
|
+
afterEach(() => {
|
|
26
|
+
sinon.restore();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('by default allows unmuting', async () => {
|
|
30
|
+
assert.equal(track.isUnmuteAllowed(), true);
|
|
31
|
+
await track.setMuted(false);
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('rejects setMute(false) if unmute is not allowed', async () => {
|
|
35
|
+
track.setUnmuteAllowed(false);
|
|
36
|
+
|
|
37
|
+
assert.equal(track.isUnmuteAllowed(), false);
|
|
38
|
+
const fn = () => track.setMuted(false);
|
|
39
|
+
expect(fn).to.throw(/Unmute is not allowed/);
|
|
40
|
+
});
|
|
22
41
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
await track.setMuted(false);
|
|
26
|
-
})
|
|
42
|
+
it('resolves setMute(false) if unmute is allowed', async () => {
|
|
43
|
+
track.setUnmuteAllowed(true);
|
|
27
44
|
|
|
28
|
-
|
|
29
|
-
|
|
45
|
+
assert.equal(track.isUnmuteAllowed(), true);
|
|
46
|
+
await track.setMuted(false);
|
|
47
|
+
});
|
|
30
48
|
|
|
31
|
-
|
|
32
|
-
|
|
49
|
+
describe('#setServerMuted', () => {
|
|
50
|
+
|
|
51
|
+
afterEach(() => {
|
|
52
|
+
sinon.restore();
|
|
33
53
|
});
|
|
34
54
|
|
|
35
|
-
|
|
36
|
-
track.
|
|
55
|
+
const checkSetServerMuted = async (startMute, setMute, expectedCalled) => {
|
|
56
|
+
await track.setMuted(startMute);
|
|
37
57
|
|
|
38
|
-
assert.equal(track.
|
|
39
|
-
|
|
40
|
-
|
|
58
|
+
assert.equal(track.muted, startMute);
|
|
59
|
+
|
|
60
|
+
const handler = sinon.fake();
|
|
61
|
+
track.on(event.ServerMuted, handler);
|
|
62
|
+
|
|
63
|
+
await track.setServerMuted(setMute, 'remotelyMuted');
|
|
64
|
+
|
|
65
|
+
assert.equal(track.muted, setMute);
|
|
66
|
+
if (expectedCalled) {
|
|
67
|
+
assert.calledOnceWithExactly(handler, {muted: setMute, reason: 'remotelyMuted'});
|
|
68
|
+
} else {
|
|
69
|
+
assert.notCalled(handler);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
it('tests true to false', async () => {
|
|
74
|
+
await checkSetServerMuted(true, false, true);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('tests false to true', async () => {
|
|
78
|
+
await checkSetServerMuted(false, true, true);
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it('tests true to true', async () => {
|
|
82
|
+
await checkSetServerMuted(true, true, false);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it('tests false to false', async () => {
|
|
86
|
+
await checkSetServerMuted(false, false, false);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
describe('#wcmeCreateMicrophoneTrack, #wcmeCreateCameraTrack', () => {
|
|
91
|
+
it('checks creating tracks', async () => {
|
|
92
|
+
const constraints = {devideId: 'abc'};
|
|
93
|
+
|
|
94
|
+
const spy = sinon.stub(wcmetracks, spyFn).returns('something');
|
|
95
|
+
const result = createFn(constraints);
|
|
96
|
+
|
|
97
|
+
assert.equal(result, 'something');
|
|
98
|
+
assert.calledOnceWithExactly(spy, className, constraints);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
})
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
describe('createDisplayTrack', () => {
|
|
106
|
+
it('checks createDisplayTrack', async () => {
|
|
107
|
+
const spy = sinon.stub(wcmetracks, 'createDisplayTrack').returns('something');
|
|
108
|
+
const result = createDisplayTrack();
|
|
109
|
+
assert.equal(result, 'something');
|
|
110
|
+
assert.calledOnceWithExactly(spy, LocalDisplayTrack);
|
|
111
|
+
});
|
|
41
112
|
|
|
42
|
-
})
|
|
43
|
-
)
|
|
44
113
|
});
|
|
45
|
-
});
|
|
114
|
+
});
|
|
115
|
+
});
|