Sha256: 394685f28c4e205db34dc238c71dea20610676dae72a52358060386106d200ec

Contents?: true

Size: 1.47 KB

Versions: 33

Compression:

Stored size: 1.47 KB

Contents

/* eslint-env mocha */

var jsonlines = require('../')

var assert = require('assert')
var concat = require('concat-stream')

describe('Stringifier', function () {
  it('should handle simple jsonlines', function (done) {
    var stringifier = jsonlines.stringify()
    var source = [
      { a: 453345, b: 23423 },
      { c: 843222, d: 19534 },
      { e: 656564, f: 76521 }
    ]
    var expected = source.map(function (obj) {
      return JSON.stringify(obj)
    }).join('\n')

    stringifier.pipe(concat({ encoding: 'buffer' }, function (result) {
      assert.deepEqual(result.toString().trim(), expected)
      done()
    }))

    for (var line of source) {
      stringifier.write(line)
    }

    stringifier.end()
  })

  it('should handle plain values', function (done) {
    var stringifier = jsonlines.stringify()
    var source = [ true, false, true, true, false ]
    var expected = 'true\nfalse\ntrue\ntrue\nfalse'

    stringifier.pipe(concat({ encoding: 'buffer' }, function (result) {
      assert.deepEqual(result.toString().trim(), expected)
      done()
    }))

    for (var line of source) {
      stringifier.write(line)
    }

    stringifier.end()
  })

  it('should emit an error on bad values', function (done) {
    var stringifier = jsonlines.stringify()
    var broken = { a: 1 }

    // Make the value bad
    broken.self = broken

    stringifier.on('error', function (err) {
      assert.equal(err.source, broken)
      done()
    })

    stringifier.end(broken)
  })
})

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
immosquare-cleaner-0.1.60 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.59 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.58 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.57 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.56 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.55 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.54 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.53 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.52 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.51 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.50 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.49 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.48 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.47 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.46 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.45 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.44 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.43 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.42 node_modules/jsonlines/test/stringifier.js
immosquare-cleaner-0.1.41 node_modules/jsonlines/test/stringifier.js