Socket
Socket
Sign inDemoInstall

@webex/media-helpers

Package Overview
Dependencies
Maintainers
7
Versions
431
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@webex/media-helpers - npm Package Compare versions

Comparing version 3.0.0-bnr.3 to 3.0.0-bnr.4

6

package.json
{
"name": "@webex/media-helpers",
"version": "3.0.0-bnr.3",
"version": "3.0.0-bnr.4",
"description": "",

@@ -26,6 +26,6 @@ "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",

"devDependencies": {
"@webex/test-helper-chai": "3.0.0-bnr.3",
"@webex/test-helper-mock-webex": "3.0.0-bnr.3",
"@webex/test-helper-chai": "workspace:^",
"@webex/test-helper-mock-webex": "workspace:^",
"sinon": "^9.2.4"
}
}

@@ -1,4 +0,5 @@

import {assert} from '@webex/test-helper-chai';
import {assert, expect} from '@webex/test-helper-chai';
import sinon from 'sinon';
import {LocalCameraTrack, LocalMicrophoneTrack} from '@webex/media-helpers';
import {LocalCameraTrack, LocalMicrophoneTrack, LocalMicrophoneTrackEvents, LocalCameraTrackEvents, LocalDisplayTrack, createCameraTrack, createMicrophoneTrack, createDisplayTrack} from '@webex/media-helpers';
import * as wcmetracks from '@webex/internal-media-core';

@@ -9,38 +10,107 @@ describe('media-helpers', () => {

const classesToTest = [
{className: LocalCameraTrack, title: 'LocalCameraTrack'},
{className: LocalMicrophoneTrack, title: 'LocalMicrophoneTrack'},
{className: LocalCameraTrack, title: 'LocalCameraTrack', event: LocalCameraTrackEvents, createFn: createCameraTrack, spyFn: 'createCameraTrack'},
{className: LocalMicrophoneTrack, title: 'LocalMicrophoneTrack', event: LocalMicrophoneTrackEvents, createFn: createMicrophoneTrack, spyFn: 'createMicrophoneTrack'},
];
classesToTest.forEach(({className, title}) =>
describe(title, () => {
const fakeStream = {
getTracks: sinon.stub().returns([{
label: 'fake track',
id: 'fake track id',
}])
};
const track = new className(fakeStream);
classesToTest.forEach(({className, title, event, createFn, spyFn}) =>
describe(title, () => {
const fakeStream = {
getTracks: sinon.stub().returns([{
label: 'fake track',
id: 'fake track id',
enabled: true,
}])
};
const track = new className(fakeStream);
it('by default allows unmuting', async () => {
assert.equal(track.isUnmuteAllowed(), true);
await track.setMuted(false);
})
afterEach(() => {
sinon.restore();
});
it('rejects setMute(false) if unmute is not allowed', async () => {
track.setUnmuteAllowed(false);
it('by default allows unmuting', async () => {
assert.equal(track.isUnmuteAllowed(), true);
await track.setMuted(false);
})
assert.equal(track.isUnmuteAllowed(), false);
await assert.isRejected(track.setMuted(false), Error, 'Unmute is not allowed');
it('rejects setMute(false) if unmute is not allowed', async () => {
track.setUnmuteAllowed(false);
assert.equal(track.isUnmuteAllowed(), false);
const fn = () => track.setMuted(false);
expect(fn).to.throw(/Unmute is not allowed/);
});
it('resolves setMute(false) if unmute is allowed', async () => {
track.setUnmuteAllowed(true);
assert.equal(track.isUnmuteAllowed(), true);
await track.setMuted(false);
});
describe('#setServerMuted', () => {
afterEach(() => {
sinon.restore();
});
it('resolves setMute(false) if unmute is allowed', async () => {
track.setUnmuteAllowed(true);
const checkSetServerMuted = async (startMute, setMute, expectedCalled) => {
await track.setMuted(startMute);
assert.equal(track.isUnmuteAllowed(), true);
await track.setMuted(false);
})
assert.equal(track.muted, startMute);
})
)
const handler = sinon.fake();
track.on(event.ServerMuted, handler);
await track.setServerMuted(setMute, 'remotelyMuted');
assert.equal(track.muted, setMute);
if (expectedCalled) {
assert.calledOnceWithExactly(handler, {muted: setMute, reason: 'remotelyMuted'});
} else {
assert.notCalled(handler);
}
};
it('tests true to false', async () => {
await checkSetServerMuted(true, false, true);
});
it('tests false to true', async () => {
await checkSetServerMuted(false, true, true);
});
it('tests true to true', async () => {
await checkSetServerMuted(true, true, false);
});
it('tests false to false', async () => {
await checkSetServerMuted(false, false, false);
});
});
describe('#wcmeCreateMicrophoneTrack, #wcmeCreateCameraTrack', () => {
it('checks creating tracks', async () => {
const constraints = {devideId: 'abc'};
const spy = sinon.stub(wcmetracks, spyFn).returns('something');
const result = createFn(constraints);
assert.equal(result, 'something');
assert.calledOnceWithExactly(spy, className, constraints);
});
});
})
);
describe('createDisplayTrack', () => {
it('checks createDisplayTrack', async () => {
const spy = sinon.stub(wcmetracks, 'createDisplayTrack').returns('something');
const result = createDisplayTrack();
assert.equal(result, 'something');
assert.calledOnceWithExactly(spy, LocalDisplayTrack);
});
});
});
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc