UNPKG

docparse-api

Version:

api server for the docparse project

116 lines (104 loc) 3.11 kB
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}); }); });