Testando com Auth0 e RSpec em Rails & Ember-CLI

Introdução

http://auth0.com é uma autenticação e autorização como um serviço. É basicamente o Devise, com esteróides, na nuvem.

Instruções de configuração para auth0 e rails & Ember:

https://auth0.com/docs/quickstart/spa/emberjs/rails

Testando

Auth0 fornece autenticação passando um JWT. No lado dos trilhos, ele usa uma gema chamada Knock para lidar com a análise do JWT e transmiti-lo ao Auth0 para autenticação. Para fazer o teste, você precisa interromper esta chamada. Aqui está o código para adicionar ao seu spec/support/auth0.rbarquivo a fim de testar com ele.

def setup_knock
request
.headers['authorization'] = 'Bearer JWTTOKEN'
knock
= double("Knock")
user
= create(:user)
yield user if block_given?
allow
(knock).to receive(:current_user).and_return(user)
allow
(knock).to receive(:validate!).and_return(true)
allow
(Knock::AuthToken).to receive(:new).and_return(knock)
end

O yield user if block_given?é apenas um auxiliar que permite que você faça a configuração para o usuário se ele precisar de coisas como rolesou qualquer outra associação. A implementação é semelhante a esta:

algum api spec.rb

before(:each) do
setup_knock
do |user|
create
(:post, user: user, title: 'Some Blog Post')
end
end