docparse-upload-process
Version:
process upload api request for the docparse server
135 lines (125 loc) • 3.85 kB
JavaScript
var inspect = require('eyespect').inspector();
var Upload = require('docparse-upload');
var mongoose = require('mongoose');
var should = require('should');
var assert = require('assert');
var exists = require('../lib/exists');
var userInUpload = require('../lib/userInUpload');
var createUser = require('./createUser');
describe('exists test', function(done) {
var user;
before(function (done) {
mongoose.disconnect(function() {
mongoose.connect('mongodb://localhost/test', function (err, reply) {
Upload.remove({}, function (err, reply) {
should.not.exist(err, 'error removing existing bills: ' + err);
createUser(function (err, reply) {
should.not.exist(err, 'error creating test user: ' + err);
should.exist(reply, 'failed to create test user');
user = reply;
done();
});
});
});
});
});
it('should not find upload with dummy hash value', function(done) {
var data = {
hash: 'dummy hash value'
}
exists(data, function (err, reply) {
should.not.exist(err);
assert.ok(!reply,'upload should not yet exist');
done();
});
});
it('should find existing upload', function(done) {
var data = {
hash: 'dummy hash value'
}
createUpload(function (err, reply) {
should.not.exist(err);
exists(data, function (err, reply) {
should.not.exist(err);
assert.ok(reply,'upload should exist now');
done();
});
});
});
it('user should not be in new upload', function(done) {
var data = {
hash: 'dummy hash value'
}
Upload.remove({}, function (err) {
should.not.exist(err);
createUpload(function (err, upload) {
should.not.exist(err);
should.exist(upload);
should.exist(user);
exists(data, function (err, reply) {
should.not.exist(err);
assert.ok(reply,'upload should exist now');
data.user = user;
data.upload = upload;
userInUpload(data, function (err, reply) {
should.not.exist(err);
assert.ok(!reply, 'user should not be in upload now');
done();
});
});
});
});
});
it('user should be in upload', function(done) {
var data = {
hash: 'dummy hash value'
}
Upload.remove({}, function (err) {
should.not.exist(err);
createUpload(function (err, upload) {
should.not.exist(err);
should.exist(upload);
exists(data, function (err, upload) {
should.not.exist(err);
assert.ok(upload,'upload should exist now');
upload.users.push(user._id);
upload.user_details = {};
upload.user_details[user._id] = {
filename: 'dummy filename'
}
upload.save(function (err, upload) {
data.user = user;
data.upload = upload;
userInUpload(data, function (err, reply) {
should.not.exist(err);
assert.ok(reply, 'user should be in upload now');
done();
});
});
});
});
});
});
// cleanup
after(function(done) {
Upload.remove({}, function(err, reply) {
mongoose.disconnect(done);
});
});
});
function createUpload(cb) {
var data = {
supplier_code: 'FGE',
hash: 'dummy hash value'
}
var upload = new Upload();
upload.supplier_code = data.supplier_code;
upload.hash = data.hash;
upload.status = 'waiting for ocr';
upload.supplier = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
upload.save(function (err, reply) {
should.not.exist(err, 'error saving upload: ' + err);
should.exist(reply, 'no upload returned from save callback');
cb(null, reply);
});
}