Search code examples
ruby-on-railsdeviseember.jsqunit

"Can't verify CSRF token authenticity" when testing emberjs/rails/devise app using qunit


I have a emberjs/rails application using devise for user authentication. I am building integration tests using qunit. I manually log into the app before I run tests. GET requests can be processed during tests, but POST requests fail. In particular, when making a POST request, I'm getting a "Can't verify CSRF token authenticity" error from devise. When I reload tests, I am logged out of app.

How do I get qunit to play nice with devise?


Solution

  • You need to add csrf_meta_tags to the index.html.erb that you are using to run your qunit tests and you also need to include jquery-ujs. Have a look at https://github.com/frodsan/qunit-rails

    Alternatively, you can add this to your application_controller:

    skip_before_filter :verify_authenticity_token if Rails.env.test?