csvwriter
Version:
Create CSV from complex JSON objects with CLI or API
42 lines (41 loc) • 1.84 kB
JavaScript
var expectAPI = require('./../testbase').expectAPI;
var expect = require('chai').expect;
describe('format', function () {
it('uses commas by default', function (done) {
expectAPI('format/data.json', 'format/default.csv', done);
});
it('can be changed to semicolons', function (done) {
expectAPI('format/data.json', 'format/semicolons.csv', done, {delimiter: ';'});
});
it('can use anything (e.g. doublepipes)', function (done) {
expectAPI('format/data.json', 'format/doublepipe.csv', done, {delimiter: '||'});
});
it('can use tabs', function (done) {
expectAPI('format/data.json', 'format/tabs.csv', done, {tabs: true});
});
it('can add line numbers', function (done) {
expectAPI('format/data.json', 'format/linenumbers.csv', done, {lineNumbers: true});
});
it('can add line numbers starting with 0', function (done) {
expectAPI('format/data.json', 'format/zero.csv', done, {lineNumbers: true, zero: true});
});
it('can be without header row', function (done) {
expectAPI('format/data.json', 'format/noheader.csv', done, {header: false});
});
it('can write a specific string for missing values', function (done) {
expectAPI('format/data.json', 'format/nullstring.csv', done, {nullString: 'N/A'});
});
it('can separate rows with LF', function (done) {
expectAPI('format/data.json', 'linefeed/default.csv', done, {crlf: false});
});
it('will convert to array', function (done) {
expectAPI('format/object.json', 'format/object.csv', done);
});
it('reports illegal json', function (done) {
expectAPI('format/illegal.json', function (err, csv) {
expect(err).not.to.be.null;
expect(csv).to.be.undefined;
done();
}, done);
});
});