Я создаю приложение и как часть его, у меня есть REST API на Express, для которого я хотел бы написать интеграционные тесты. Я использую «mocha» и «chai-http» для этого, и все это отлично работает, когда я добавляю аутентификацию. Так что в тесте:Как протестировать экспресс-REST API с помощью паспорта Google OAuth с моккой?
process.env.NODE_ENV = 'development'
let chai = require('chai')
let chaiHttp = require('chai-http')
let should = chai.should()
var server = require('../app.js')
var schemas = require('../schemas')
var Snippet = schemas.Snippet
chai.use(require('chai-passport-strategy'))
chai.use(chaiHttp)
describe('Snippet',() => {
beforeEach((done) => {
Snippet.destroy({
where: {}
}).then(function() {
done()
}).catch(function (e) {
done(e)
})
})
describe('snippet create',() => {
it('it should store a snippet ', (done) => {
let snippet = {
title: 'Test',
description: 'Mock description',
snippet: 'Mock body',
keywords: 'Test key, words;input',
type: 'sql',
rating: 1,
approved: false
}
chai.request(server)
.post('/api/submitSnippet/')
.send(snippet)
.end((err, res) => {
if (err) console.log(err)
res.should.have.status(200)
res.body.should.be.a('object')
res.body.should.have.property('title')
res.body.should.have.property('description')
res.body.should.have.property('snippet')
res.body.should.have.property('keywords')
res.body.should.have.property('type')
res.body.should.have.property('rating')
res.body.should.have.property('approved')
res.body.title.should.equal('Test')
res.body.description.should.equal('Mock description')
res.body.snippet.should.equal('Mock body')
res.body.keywords.should.equal(['Test', 'key', 'words', 'input'])
res.body.type.should.equal('sql')
res.body.rating.should.equal(1)
res.body.approved.should.equal(false)
done()
})
})
})
})
Я получаю сообщение об ошибке, потому что мой запрос не будет получен из аутентифицированного сеанса. Я использую «паспорт» с Google OAuth, поэтому я не могу отправить запрос на отправку на страницу входа в систему, и я не могу придумать способ входа в систему или проверки подлинности моих запросов. (Операции с базой данных Sequelize). Как я могу проверить действия API в приложении? Существует ли стандартный подход?
У вас не было счастья с решением после создания этого сообщения? – vapurrmaid
@vapurrmaid Да, я добавил ответ. –