如何在angular度全堆生成器生成的已authentication端点中运行超类

我正在尝试使用supertest来testing我使用yeoman angular度全堆栈生成器进行身份validation的设置的行为。 我尝试使用supertests文档中描述的简单auth,但我仍然得到404错误。

端点和testing按以下方式进行configuration:

服务器/ 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 /服务器/ API /事/ 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(); }); }); }); 

有关如何testing此端点的任何想法?

我认为这些错误可能与我使用Passport进行身份validation的事实有关,有什么方法可以对Passport进行超级用户身份validation吗?

find解决scheme! 我只需要将身份validation令牌路由到经过身份validation的端点。

 var server = request.agent('http://localhost:9000'); var token = null describe('GET /api/things', function() { before(function(done){ User.find({}).remove(function() { User.create({ provider: 'local', name: 'Test User', email: 'test@test.com', password: 'test' }, { provider: 'local', role: 'admin', name: 'Admin', email: 'admin@admin.com', password: 'admin' }, function() { console.log('finished populating users'); server.post('/auth/local') .send({email:'test@test.com', password:'test'}) .expect(302) .end(function(err, res){ console.error('ERROR ' + JSON.stringify(err)); console.log('BODY ' + JSON.stringify(res.body)); token = res.body.token; done(); }) } ); }); }); it('should respond with JSON array', function(done) { server.get('/api/things') .set('Authorization', 'Bearer ' + token) .expect(200) .expect('Content-Type', /json/) .end(function(err, res) { if (err) return done(err); res.body.should.be.instanceof(Array); done(); }); }); });