* chore: make aware eslint that we use jest By setting up the jest environment, we no longer need to declare the 'test' global in the configuration. * chore: don't need to import expect, it's a jest environment global * chore: don't need to import expect when creating undefined test
35 lines
714 B
JavaScript
35 lines
714 B
JavaScript
const {deepFreeze} = require('./_30s.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({});
|
|
});
|