// Test that exceptions are throw for invalid values for start and // stop. function testStartStop(should, node, options) { // Test non-finite values for start. These should all throw a TypeError const nonFiniteValues = [NaN, Infinity, -Infinity]; nonFiniteValues.forEach(time => { should(() => { node.start(time); }, `start(${time})`) .throw(TypeError); }); should(() => { node.stop(); }, 'Calling stop() before start()').throw(DOMException, 'InvalidStateError'); should(() => { node.start(-1); }, 'start(-1)').throw(RangeError); if (options) { options.forEach(test => { should(() => {node.start(...test.args)}, 'start(' + test.args + ')').throw(test.errorType); }); } node.start(); should(() => { node.start(); }, 'Calling start() twice').throw(DOMException, 'InvalidStateError'); should(() => { node.stop(-1); }, 'stop(-1)').throw(RangeError); // Test non-finite stop times nonFiniteValues.forEach(time => { should(() => { node.stop(time); }, `stop(${time})`) .throw(TypeError); }); }