You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.6 KiB
58 lines
1.6 KiB
3 years ago
|
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);
|
||
|
});
|
||
|
});
|