docparse-api
Version:
api server for the docparse project
116 lines (104 loc) • 3.11 kB
JavaScript
var mockCreate = require('./mockUploadCreate.js');
var ce = require('cloneextend');
var mongoose = require('mongoose');
var ObjectId = mongoose.Types.ObjectId;
var fs = require('fs');
var path = require('path');
var should = require('should');
var inspect = require('eyespect').inspector();
var assert = require('assert');
var request = require('request');
var server = require('../server');
var port = 5197;
var uploadCreateRoute = require('../lib/uploadCreate');
describe('Create new upload via api', function() {
this.timeout(10*1000);
this.slow(2*1000);
var filename = 'big.pdf';
var uploadData = {
supplierCode: 'FGS',
filename: filename
};
var filePath = path.join(__dirname, 'data', filename);
assert.ok(fs.existsSync(filePath), 'test pdf file not found at path: '+ filePath);
uploadData.filePath = filePath;
var scraperServer;
var req = {
files: {
upload: {
path: filePath
}
},
user: {
_id: new ObjectId()
},
params: {
supplierCode: 'NST'
}
};
var logger = {
info: function(msg, data) {
console.log(msg);
},
debug: function(msg, data) {
console.log(msg);
}
};
it('should get 401 unauthorized for anonymous upload create request', function (done) {
var serverData = {
port: port
};
scraperServer = server(serverData);
should.exist(scraperServer);
var options = {
url: 'http://localhost' + ':' + port + '/api/upload/create',
method: 'POST'
};
request(options, function (err, response, body) {
scraperServer.close();
scraperServer = null;
should.not.exist(err);
var statusCode = response.statusCode;
statusCode.should.equal(401, 'wrong status code for unauthorized request');
done();
});
});
it('should get error for upload create request without files parameter', function (done) {
var testRequest = ce.clone(req);
delete testRequest.files.upload;
var res = {
send: function (data) {
data.statusCode.should.eql(500);
var msg = data.message;
data.message.should.eql('files.upload field not set');
done();
}
};
uploadCreateRoute(testRequest, res, {logger: logger});
});
it('should get error for upload create request without supplierCode parameter', function (done) {
var testRequest = ce.clone(req);
testRequest.params.supplierCode = null;
var res = {
send: function (data) {
data.statusCode.should.eql(500);
var msg = data.message;
var msgData = JSON.parse(msg);
msgData[0].key.should.eql('supplierCode');
done();
}
};
uploadCreateRoute(testRequest, res, {logger: logger, create: mockCreate});
});
it('should process valid upload create request correctly', function (done) {
var testRequest = ce.clone(req);
var res = {
send: function (data) {
should.exist(data);
data.should.eql({});
done();
}
};
uploadCreateRoute(testRequest, res, {logger: logger, create: mockCreate});
});
});