docparse-supplier-nge
Version:
process ngrid electric utility bill data for use in the docparse system
85 lines (74 loc) • 2.29 kB
JavaScript
var inspect = require('eyespect').inspector();
var should = require('should');
var sinon = require('sinon');
var handleError = require('../lib/upload/handleError');
var Upload = require('docparse-upload');
describe('Handle Error Test', function () {
var data, sandbox;
beforeEach(function(done) {
data = {};
sandbox = sinon.sandbox.create();
var upload = {
text_pages: ['foo page 1', 'bar page 2'],
warnings: []
};
data.upload = upload;
data.fixed = false;
data.error = 'foo error',
data.pageIndex = 0;
upload.warnings.length.should.eql(0);
upload.save = function (cb) {
cb();
};
done();
});
afterEach(function() {
sandbox.restore();
});
it('should reject adding errors when upload parameter is not set', function (done) {
delete data.upload;
handleError(data, function (err, reply) {
should.exist(err, 'error handling error parsing upload: ' + err);
err.length.should.eql(1);
var error = err[0];
error.key.should.eql('upload');
done();
});
});
it('should reject adding errors when pageIndex parameter is not set', function (done) {
delete data.pageIndex;
handleError(data, function (err, reply) {
should.exist(err, 'error handling error parsing upload: ' + err);
err.length.should.eql(1);
var error = err[0];
error.key.should.eql('pageIndex');
done();
});
});
it('should reject adding errors when error parameter is not set', function (done) {
delete data.error;
handleError(data, function (err, reply) {
should.exist(err, 'error handling error parsing upload: ' + err);
err.length.should.eql(1);
var error = err[0];
error.key.should.eql('error');
done();
});
});
it('should add warning', function (done) {
sandbox.stub(Upload, 'findOne', function (query, cb) {
cb();
});
sandbox.stub(Upload.prototype, 'save', function (cb) {
this.validate(cb);
});
data.upload.save(function (err, reply) {
});
handleError(data, function (err, upload) {
should.not.exist(err, 'error handling error parsing upload: ' + err);
should.exist(upload);
upload.warnings.length.should.eql(1);
done();
});
});
});