2016-07-15 8 views
0

Как проверить загрузку файла с отправленным токеном? Я возвращаю «0» вместо подтверждения загрузки.Как объединить тестовую загрузку файла с помощью Supertest -and- отправить токен?

Это неудачный тест:

var chai = require('chai'); 
var expect = chai.expect; 
var config = require("../config"); // contains call to supertest and token info 

    describe('Upload Endpoint', function(){ 

    it('Attach photos - should return 200 response & accepted text', function (done){ 
     this.timeout(15000); 
     setTimeout(done, 15000); 
     config.api.post('/customer/upload') 
       .set('Accept', 'application.json') 
       .send({"token": config.token}) 
       .field('vehicle_vin', "randomVIN") 
       .attach('file', '/Users/moi/Desktop/unit_test_extravaganza/hardwork.jpg') 

       .end(function(err, res) { 
        expect(res.body.ok).to.equal(true); 
        expect(res.body.result[0].web_link).to.exist; 
       done(); 
      }); 
    }); 
}); 

Это Дрессировка:

describe('Upload Endpoint - FL token ', function(){ 
    this.timeout(15000); 
    it('Press Send w/out attaching photos returns error message', function (done){ 
    config.api.post('/customer/upload') 
     .set('Accept', 'application.json') 
     .send({"token": config.token }) 
     .expect(200) 
     .end(function(err, res) { 
     expect(res.body.ok).to.equal(false); 
     done(); 
    }); 
}); 

Любые предложения приветствуются!

ответ

0

Похоже, что токеновое поле переопределяется при прикреплении файла. Мой обходной путь, чтобы добавить маркер параметра запроса URL:

describe('Upload Endpoint - FL token ', function(){ 
    this.timeout(15000); 
    it('Press Send w/out attaching photos returns error message', function (done){ 
    config.api.post('/customer/upload/?token='+config.token) 
     .attach('file', '/Users/moi/Desktop/unit_test_extravaganza/hardwork.jpg') 
     .expect(200) 
     .end(function(err, res) { 
     expect(res.body.ok).to.equal(false); 
     done(); 
    }); 
}); 

аутентификация промежуточного слоя должен быть установлен, чтобы извлечь JWT из параметра URL запроса. Passport-JWT выполняет это извлечение на моем сервере.