Невозможно проверить авторизацию третьей стороной: Node/Express/Supertest/Facebook

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

var expect    = require("chai").expect;
var mongoose = require('mongoose');
var User = require('../models/users');
var nock = require('nock');
var parser = require('cookie-parser')

var session = require('supertest-session');
var agent = require('superagent');

var _ = require('lodash');

var app = require('../app');

var testSession = null;

var fbRedirectURL;

beforeEach(function () {
  testSession = session(app);
});

it('should authorize with FB', function (done) {

    testSession.get('/auth/facebook')
        .expect(302)
        .end(function(err, res){
            fbRedirectURL=decodeURIComponent(res.headers.location);
            done()
        });
});

it('should get FB data', function (done) {

    testSession.get(fbRedirectURL)
        .expect(200)
        .end(function(err,res) {
            console.log()
            done()
        })
});

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

Я выглядел высоко и низко и не нашел ничего, что могло бы решить проблему тестирования сторонними сервисами аутентификации, и это кажется проблематичным. Есть ли ресурсы, которые я не нашел? Даже документация к паспорту-фейсбуку, кажется, скользит по теме тестирования кода, который зависит от аутентификации FB, и предоставляет набор тестов только для своего собственного кода.

Заранее спасибо.

1 ответ

Я не смог добиться успеха, и я перешел на использование E2E-тестирования с nightwatch.js и селеном. Потребовалось около часа, чтобы понять это и получить тесты логинов FB: теперь мне просто нужно посмотреть, смогу ли я интегрировать тесты мокко с ночными часами…

Другие вопросы по тегам