Как провести интеграционное тестирование стратегии Twitter для passport.js, реализованной в express.js?

Как вы можете проверить это как часть типичной реализации Mocha/Supertest?

1 ответ

Решение

Я не знаю, насколько это надежно, но было довольно легко создать поддельную учетную запись Twitter и смоделировать поток с помощью Zombie:

describe('GET /auth/twitter', function(){

    it('should redirect to /account', function(done){
        this.timeout(20e3)
        var zombie = new Zombie()
        zombie.visit(url.resolve(YOUR_HOST, '/auth/twitter'), function(err){
            if (err) throw err
            zombie
                .fill('#username_or_email', 'YOUR_USERNAME')
                .fill('#password', 'YOUR_PASSWORD')
                .pressButton('#allow', function(err){
                    if (err) throw err
                    zombie.clickLink('.maintain-context', function(err){
                        if (err) throw err
                        // Signed in! Do some assertions here.
                        return done()
                    })
                })
        })
    })

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