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);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 |