2014-09-03 3 views
3

Я использую koa-паспорт & koa для обработки моего входа и регистрации с помощью twitter oauth. Он отлично работает, но у меня возникают трудности с пониманием того, как я должен проверять мои аутентифицированные маршруты, используя суперэфир и мокко.тестирование oauth аутентифицированных маршрутов

Большинство примеров, которые я видел, связаны с использованием supertest для отправки имени пользователя и пароля конечной точке входа для первого создания сеанса пользователя. Моя проблема в том, что у меня нет стратегии авторизации имени пользователя и паспорта. Мне нужно эмулировать процесс входа в систему, который будет устанавливать соответствующие переменные сеанса и, следовательно, проверять определенные маршруты.

Любая подсказка о том, как я могу это достичь?

ответ

0

Мое решение в этой связи заключается в том, чтобы вначале вставлять фиктивного аутентифицированного пользователя в стек промежуточного программного обеспечения, когда это необходимо. Вот мой базовый код для экспресс.

var Layer = require('express/lib/router/layer'); 
var app = require('../../../server'); 

exports.login = login; 
exports.logout = logout; 

function login(user){ 

    var fn = function insertUser(req, res, next){ 
    req.user = user; 
    next(); 
    } 

    var layer = new Layer('/', { 
    sesitive: false, 
    strict: false, 
    end: false 
    }, fn); 
    layer.route = undefined; 

    app._router.stack.unshift(layer); 
} 

function logout(){ 
    app._router.stack.shift(); 
} 

И тогда в ваших тестах, вы звоните:

it('should allow the user to edit something', function(done){ 
    login(this.user); 
    // perform supertest task 
    logout(); 
}); 

Это, очевидно, довольно зачаточном ... но, кажется, чтобы сделать работу в целях тестирования.

+0

В конфигурации Layer имеется орфографическая ошибка. Свойство первых опций должно быть «чувствительным». – ligaz

Смежные вопросы