58 lines
1.6 KiB
TypeScript
58 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);
|
||
|
});
|
||
|
});
|