Last Updated: September 29, 2021
· robguilfoyle

Testing with Auth0 and RSpec in Rails & Ember-CLI

Intro is a Authentication & Authorization as a service. Its basically Devise, on steroids, in the cloud.

Setup instructions for auth0 and rails & Ember:


Auth0 provides authentication by passing a JWT. On the rails side it uses a gem called Knock to handle parsing the JWT and passing it to Auth0 for auth. In order to test you have to stub out this call. Here is code to add to your spec/support/auth0.rb file in order to test with it.

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)

The yield user if block_given? is just a helper that allows you to do setup to the user if it needs things like roles or any other association. The implementation looks like this:


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