スーパーテストを使用して、yeoman angular full stack generatorを使用して作成した認証済みエンドポイントの動作をテストしようとしています。スーパーテストのドキュメントで説明されているように単純な認証を使用しようとしましたが、まだ 404 エラーが発生します。
エンドポイントとテストは次のように構成されます。
サーバー/api/物/index.js
'use strict';
var express = require('express');
var auth = require('../../auth/auth.service');
var controller = require('./thing.controller');
var router = express.Router();
router.get('/', auth.isAuthenticated(), controller.index);
module.exports = router;
fullstack-demo/server/api/thing/thing.spec.js
'use strict';
var should = require('should');
var app = require('../../app');
var request = require('supertest');
var User = require('./user.model');
describe('GET /api/things', function() {
before(function(done) {
//Create user for testing
var user = new User({
provider: 'local',
name: 'Fake User',
email: 'test@test.com',
password: 'test'
});
user.save(function(){done()});
});
it('should respond with JSON array', function(done) {
request(app)
.get('/api/things')
.auth('test@test.com', 'test')
.expect(200)
.expect('Content-Type', /json/)
.end(function(err, res) {
if (err) return done(err);
res.body.should.be.instanceof(Array);
done();
});
});
});
このエンドポイントをテストする方法についてのアイデアはありますか?
エラーは、私が認証に Passport を使用しているという事実に関連している可能性があると思います。Passport に対してスーパーテストを認証する方法はありますか?