From f347b7e911eb0c625e7326de30da7f1309915551 Mon Sep 17 00:00:00 2001 From: Siarhei Date: Fri, 14 Sep 2018 12:26:08 +0400 Subject: [PATCH] Add unit tests for deepFreeze --- test/deepFreeze/deepFreeze.test.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/deepFreeze/deepFreeze.test.js b/test/deepFreeze/deepFreeze.test.js index ca1166920..60c2717c0 100644 --- a/test/deepFreeze/deepFreeze.test.js +++ b/test/deepFreeze/deepFreeze.test.js @@ -4,3 +4,32 @@ const deepFreeze = require('./deepFreeze.js'); test('deepFreeze is a Function', () => { expect(deepFreeze).toBeInstanceOf(Function); }); + +test('modifying deeply freezed object prop throws an error in strict mode', () => { + let freezedObj = deepFreeze({a: 42}); + + expect(() => { + 'use strict'; + freezedObj.a = 24; + }).toThrow(); +}); + +test('should not modify deeply freezed object inside another object', () => { + let freezedObj = deepFreeze({ + a: { + b: 42 + } + }); + + freezedObj.a.b = 16; + + expect(freezedObj.a.b).toBe(42); +}); + +test('should not add prop to deeply freezed empty object', () => { + let freezedObj = deepFreeze({}); + + freezedObj.a = 42; + + expect(freezedObj).toEqual({}); +});