57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import {Converter} from "../src/Converter";
|
|
import CSVError from "../src/CSVError";
|
|
var assert = require("assert");
|
|
var fs = require("fs");
|
|
|
|
describe("Converter error handling", function() {
|
|
it("should handle quote not closed", function(done) {
|
|
var rs = fs.createReadStream(__dirname + "/data/dataWithUnclosedQuotes");
|
|
var conv = new Converter({});
|
|
conv.on("error", function(err:CSVError) {
|
|
assert(err.err === "unclosed_quote");
|
|
done();
|
|
});
|
|
rs.pipe(conv);
|
|
});
|
|
|
|
|
|
it ("should handle column number mismatched error", function(done) {
|
|
var rs = fs.createReadStream(__dirname + "/data/dataWithMismatchedColumn");
|
|
var conv = new Converter({
|
|
checkColumn:true
|
|
});
|
|
var tested = false;
|
|
conv.on("error", function(err:CSVError) {
|
|
if (tested === false) {
|
|
assert(err.err === "column_mismatched");
|
|
tested = true;
|
|
// done();
|
|
}
|
|
});
|
|
conv.on('done',function() {
|
|
assert(tested);
|
|
done();
|
|
});
|
|
rs.pipe(conv);
|
|
});
|
|
|
|
it("should treat quote not closed as column_mismatched when alwaysSplitAtEOL is true", function(done) {
|
|
var rs = fs.createReadStream(__dirname + "/data/dataWithUnclosedQuotes");
|
|
var conv = new Converter({
|
|
checkColumn:true,
|
|
alwaysSplitAtEOL:true,
|
|
});
|
|
var tested = false;
|
|
conv.on("error", function(err:CSVError) {
|
|
if (tested === false) {
|
|
assert(err.err === "column_mismatched");
|
|
tested = true;
|
|
}
|
|
});
|
|
conv.on('done',function() {
|
|
assert(tested);
|
|
done();
|
|
});
|
|
rs.pipe(conv);
|
|
});
|
|
});
|