diff --git a/lib/render.js b/lib/render.js index ec486aaf..52f71c8b 100644 --- a/lib/render.js +++ b/lib/render.js @@ -1,5 +1,6 @@ var Stream = require('stream'); var json = typeof JSON === 'object' ? JSON : require('jsonify'); +var getSerialize = require('json-stringify-safe').getSerialize() module.exports = Render; @@ -70,8 +71,8 @@ function encodeResult (res, count) { output += outer + '---\n'; output += inner + 'operator: ' + res.operator + '\n'; - var ex = json.stringify(res.expected) || ''; - var ac = json.stringify(res.actual) || ''; + var ex = json.stringify(res.expected, getSerialize) || ''; + var ac = json.stringify(res.actual, getSerialize) || ''; if (Math.max(ex.length, ac.length) > 65) { output += inner + 'expected:\n' + inner + ' ' + ex + '\n'; diff --git a/package.json b/package.json index 973aa98e..8b1f8b6b 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "dependencies" : { "jsonify" : "~0.0.0", "deep-equal" : "~0.0.0", - "defined" : "~0.0.0" + "defined" : "~0.0.0", + "json-stringify-safe": "~4.0.0" }, "devDependencies" : { "tap" : "~0.3.0", diff --git a/test/circular-things.js b/test/circular-things.js new file mode 100644 index 00000000..0ac7baf7 --- /dev/null +++ b/test/circular-things.js @@ -0,0 +1,43 @@ +var tape = require('../'); +var tap = require('tap'); + +tap.test('circular test', function (assert) { + var test = tape.createHarness({ exit : false }); + var tc = tap.createConsumer(); + + var rows = []; + tc.on('data', function (r) { rows.push(r) }); + tc.on('end', function () { + // console.log("rs", rows) + + // console.log("deepEqual?") + + assert.same(rows, [ + "TAP version 13" + , "circular" + , { id: 1 + , ok: false + , name: " should be equal" + , operator: "equal" + , expected: "{}" + , actual: '{"circular":"[Circular]"}' + } + , "tests 1" + , "pass 0" + , "fail 1" + ]) + assert.end() + }) + + // tt.equal(10, 10) + // tt.end() + + test.stream.pipe(tc); + + test("circular", function (t) { + t.plan(1) + var circular = {} + circular.circular = circular + t.equal(circular, {}) + }) +})