UNPKG

is-circular

Version:

high-performance, zero-dependency circular reference check for objects (or arrays)

52 lines (39 loc) 1.12 kB
/* eslint-env jest */ var isCircular = require('../') describe('is-circular', function () { it('should error if passed a non-object', function (done) { expect(isCircular.bind(null, 2)).toThrow(/object/) done() }) it('should return true for circular objects', function (done) { var x = {} x.cyclic = { a: 1, x: x } expect(isCircular(x)).toEqual(true) done() }) it('should return true for circular objects', function (done) { var x = {} x.cyclic = { a: {}, x: x } expect(isCircular(x)).toEqual(true) done() }) it('should return true for circular objects', function (done) { var x = {} x.cyclic = { a: {}, indirect: { x: x } } expect(isCircular(x)).toEqual(true) done() }) it('should return false for non-circular objects', function (done) { var x = {} x.cyclic = { a: 1, b: 2 } expect(isCircular(x)).toEqual(false) done() }) it('should return false for non-circular objects', function (done) { var x = {} var y = {} x.cyclic = { a: y, b: y } expect(isCircular(x)).toEqual(false) done() }) })