From 32ef35d06c8db40cf47c3d0a5fbbfe6ca88d2000 Mon Sep 17 00:00:00 2001 From: John-Mark Gurney Date: Mon, 20 Apr 2020 21:54:13 -0700 Subject: [PATCH] add support for stubbing out getUserMedia for now.. --- package.json | 1 + src/index/index.spec.js | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/package.json b/package.json index 8ff0f27..81a3ac4 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "chai": "^4.2.0", "mocha": "^7.1.1", "nyc": "^15.0.1", + "sinon": "^9.0.2", "webpack": "^4.42.1", "webpack-cli": "^3.3.11" }, diff --git a/src/index/index.spec.js b/src/index/index.spec.js index 9a197b9..44c377c 100644 --- a/src/index/index.spec.js +++ b/src/index/index.spec.js @@ -1,12 +1,38 @@ 'use strict' +const sinon = require('sinon') const index = require('../index') const expect = require('chai').expect +var navigator; + +function setupBrowser() { + navigator = { + mediaDevices: { + getUserMedia: () => { console.log('dummy'); throw 'failure'; } + } + } + global.navigator = navigator; +} + describe('index module', () => { describe('"members"', () => { it('should be have the following members', () => { expect(global.runPage).to.be.a('function'); }) }) + describe('"runPage"', () => { + it('should call getUserMedia', async () => { + setupBrowser(); + + var gum = sinon.stub(navigator.mediaDevices, 'getUserMedia'); + gum.onFirstCall().returns(true); + + await global.runPage(); + + expect(gum.calledOnce).to.be.true; + + gum.restore(); + }) + }) })