UNPKG

@mafalda-sfu/mediasoup-node-tests

Version:
55 lines (54 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deepFreeze = deepFreeze; exports.expect_rejects_toThrow = expect_rejects_toThrow; exports.expect_not_toThrow = expect_not_toThrow; exports.expect_toThrow = expect_toThrow; /** * Make an object or array recursively immutable. * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze. */ function deepFreeze(object) { // Retrieve the property names defined on object. const propNames = Reflect.ownKeys(object); // Freeze properties before freezing self. for (const name of propNames) { const value = object[name]; if ((value && typeof value === 'object') || typeof value === 'function') { deepFreeze(value); } } return Object.freeze(object); } async function expect_rejects_toThrow(expression, errorMessage) { try { await expression; } catch (error) { if (!errorMessage || error.toString().includes(errorMessage)) return; throw error; } throw new Error('Expression did not throw'); } function expect_not_toThrow(fn, errorMessage) { try { fn(); } catch (error) { if (!errorMessage || error.toString().includes(errorMessage)) throw error; } } function expect_toThrow(fn, errorMessage) { try { fn(); } catch (error) { if (!errorMessage || error.toString().includes(errorMessage)) return; console.log(error, error.name, error.toString(), errorMessage); throw error; } throw new Error('Function did not throw'); }