docparse-api
Version:
api server for the docparse project
86 lines (79 loc) • 2.39 kB
JavaScript
var mockParse = require('./mockUploadParse.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 uploadParseRoute = require('../lib/uploadParse');
describe('Parse new upload via api', function() {
this.timeout(10*1000);
this.slow(2*1000);
var filename = 'big.pdf';
var uploadData = {
supplierCode: 'FGS',
filename: filename
};
var scraperServer;
var req = {
user: {
_id: new ObjectId()
},
params: {
hash: 'foo hash'
}
};
var logger = {
info: function(msg, data) {
console.log(msg);
},
debug: function(msg, data) {
console.log(msg);
}
};
it('should get 401 unauthorized for anonymous upload parse request', function (done) {
var serverData = {
port: port
};
scraperServer = server(serverData);
should.exist(scraperServer);
var url = 'http://localhost' + ':' + port + '/api/upload/parse/fooHash';
request(url, 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 parse request without a hash parameter', function (done) {
var testRequest = ce.clone(req);
testRequest.params.hash = null;
var res = {
send: function (data) {
data.statusCode.should.eql(409);
var msg = data.message;
msg.should.eql('upload hash must be the last part of the url like /api/upload/parse/4c3d3d20906f12bb7e492d3644d4248717ed064e');
done();
}
};
uploadParseRoute(testRequest, res, {logger: logger, parse: mockParse});
});
it('should process valid upload parse request correctly', function (done) {
var testRequest = ce.clone(req);
var res = {
send: function (data) {
should.exist(data);
data.should.eql({});
done();
}
};
uploadParseRoute(testRequest, res, {logger: logger, parse: mockParse});
});
});