UNPKG

serialize-killer

Version:

Make your objects unserializable.

47 lines (46 loc) 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const unserializable_1 = require("./unserializable"); describe('unserializable', () => { it('returns a frozen value', () => { expect(Object.isFrozen((0, unserializable_1.unserializable)())).toBe(true); }); it('cannot be unpoisoned', () => { const poison = (0, unserializable_1.unserializable)(); expect(() => { delete poison.__unserializable__; }).toThrowErrorMatchingInlineSnapshot(`"Cannot delete property '__unserializable__' of #<Object>"`); }); describe('as a standalone value', () => { it('prevents serialization', () => { expect(() => JSON.stringify((0, unserializable_1.unserializable)())) .toThrowErrorMatchingInlineSnapshot(` "Converting circular structure to JSON --> starting at object with constructor 'Object' --- property '__unserializable__' closes the circle" `); }); }); describe('as a top-level value in an object', () => { it('prevents serialization', () => { expect(() => JSON.stringify({ _: (0, unserializable_1.unserializable)(), hello: 'world', })).toThrowErrorMatchingInlineSnapshot(` "Converting circular structure to JSON --> starting at object with constructor 'Object' --- property '__unserializable__' closes the circle" `); }); }); describe('as an element in an array', () => { it('prevents serialization', () => { expect(() => JSON.stringify(['hello', (0, unserializable_1.unserializable)(), 'world'])) .toThrowErrorMatchingInlineSnapshot(` "Converting circular structure to JSON --> starting at object with constructor 'Object' --- property '__unserializable__' closes the circle" `); }); }); });