Skip to content

Instantly share code, notes, and snippets.

@gabriel-dehan
Created July 4, 2012 09:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gabriel-dehan/3046442 to your computer and use it in GitHub Desktop.
Save gabriel-dehan/3046442 to your computer and use it in GitHub Desktop.
Authentication integration test with rspec/devise
module ApplicationHelper
# Public: display an inline user authentication interaction
#
# Returns the generated html String.
def display_user_authentication
if user_signed_in?
render 'devise/menu/logout_button'
else
render 'devise/menu/login_form'
end
end
end
<div id="header" class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
<a class="brand" href="#">CoHoop</a>
<div class="btn-group pull-right">
<%= display_user_authentication %>
</div>
<div class="nav-collapse">
<ul class="nav">
<li class="active"><a href="">Link</a></li>
</ul>
</div>
</div>
</div>
</div>
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: { id: 'login-mini-form' }) do |f| %>
<%= f.email_field :email, placeholder: 'Your email' %>
<%= f.password_field :password, placeholder: '******' %>
<%= f.submit "Log in", id: 'login-button' %>
<%- if devise_mapping.rememberable? -%>
<%= f.check_box :remember_me %> <%= f.label :remember_me %>
<%- end -%>
<% end %>
<%= link_to 'Log out', destroy_user_session_path, method: :delete, id: 'logout-link' %>
require 'spec_helper'
describe "User authentication" do
describe 'action' do
# [...]
describe 'log in' do
before { visit root_path }
subject { page }
describe 'should be able to be performed' do
describe 'with valid credentials' do
before do
user = FactoryGirl.create(:user)
fill_in :user_email, with: user.email
fill_in :user_password, with: user.password
click_on 'Log in'
end
it { should have_link 'Log out' }
end
# [...]
end
end
end
end
Connecting to database specified by database.yml
 (0.3ms) begin transaction
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#new as HTML
Rendered devise/registrations/new.html.erb within layouts/application (149.6ms)
Rendered devise/menu/_login_form.html.erb (2.0ms)
Rendered layouts/_header.html.erb (3.1ms)
Rendered shared/_flash_messages.html.erb (0.4ms)
Completed 200 OK in 201ms (Views: 180.9ms | ActiveRecord: 1.6ms)
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#create as HTML
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"}
 (0.1ms) SAVEPOINT active_record_1
User Exists (0.1ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1
 (0.0ms) ROLLBACK TO SAVEPOINT active_record_1
Rendered devise/registrations/new.html.erb within layouts/application (7.0ms)
Rendered devise/menu/_login_form.html.erb (1.1ms)
Rendered layouts/_header.html.erb (1.5ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 67ms (Views: 10.5ms | ActiveRecord: 0.0ms)
 (0.1ms) rollback transaction
 (0.0ms) begin transaction
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#new as HTML
Rendered devise/menu/_login_form.html.erb (1.0ms)
Rendered layouts/_header.html.erb (1.4ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 6ms (Views: 5.8ms | ActiveRecord: 0.0ms)
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#create as HTML
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"}
 (0.1ms) SAVEPOINT active_record_1
User Exists (0.1ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1
 (0.0ms) ROLLBACK TO SAVEPOINT active_record_1
Rendered devise/menu/_login_form.html.erb (1.2ms)
Rendered layouts/_header.html.erb (1.5ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 16ms (Views: 9.7ms | ActiveRecord: 0.0ms)
 (0.0ms) rollback transaction
 (0.0ms) begin transaction
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#new as HTML
Rendered devise/menu/_login_form.html.erb (1.1ms)
Rendered layouts/_header.html.erb (1.4ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 6ms (Views: 5.9ms | ActiveRecord: 0.0ms)
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#create as HTML
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"}
 (0.1ms) SAVEPOINT active_record_1
User Exists (0.1ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1
 (0.0ms) ROLLBACK TO SAVEPOINT active_record_1
Rendered devise/menu/_login_form.html.erb (1.0ms)
Rendered layouts/_header.html.erb (1.4ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 16ms (Views: 9.7ms | ActiveRecord: 0.0ms)
 (0.0ms) rollback transaction
 (0.0ms) begin transaction
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#new as HTML
Rendered devise/menu/_login_form.html.erb (1.1ms)
Rendered layouts/_header.html.erb (1.5ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 7ms (Views: 6.1ms | ActiveRecord: 0.0ms)
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#create as HTML
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"}
 (0.1ms) SAVEPOINT active_record_1
User Exists (0.1ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1
 (0.0ms) ROLLBACK TO SAVEPOINT active_record_1
Rendered devise/menu/_login_form.html.erb (1.1ms)
Rendered layouts/_header.html.erb (1.4ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 16ms (Views: 9.6ms | ActiveRecord: 0.0ms)
 (0.0ms) rollback transaction
 (0.0ms) begin transaction
Started GET "/users/sign_up" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#new as HTML
Rendered devise/menu/_login_form.html.erb (1.1ms)
Rendered layouts/_header.html.erb (1.5ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 7ms (Views: 6.1ms | ActiveRecord: 0.0ms)
 (0.6ms) SELECT COUNT(*) FROM "users"
Started POST "/users" for 127.0.0.1 at 2012-07-04 11:36:06 +0200
Processing by Devise::RegistrationsController#create as HTML
Parameters: {"utf8"=>"✓", "user"=>{"first_name"=>"", "last_name"=>"", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"}
 (0.0ms) SAVEPOINT active_record_1
User Exists (0.1ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('') LIMIT 1
 (0.0ms) ROLLBACK TO SAVEPOINT active_record_1
Rendered devise/menu/_login_form.html.erb (1.2ms)
Rendered layouts/_header.html.erb (1.6ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 16ms (Views: 9.9ms | ActiveRecord: 0.0ms)
 (0.1ms) SELECT COUNT(*) FROM "users"
 (0.0ms) rollback transaction
 (0.0ms) begin transaction
Started GET "/" for 127.0.0.1 at 2012-07-04 11:36:07 +0200
Processing by PagesController#home as HTML
Rendered devise/menu/_login_form.html.erb (1.4ms)
Rendered layouts/_header.html.erb (1.8ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 6ms (Views: 5.3ms | ActiveRecord: 0.0ms)
 (0.0ms) SAVEPOINT active_record_1
User Exists (0.5ms) SELECT 1 AS one FROM "users" WHERE "users"."email" = 'foo2@example.com' LIMIT 1
User Exists (0.1ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('foo2@example.com') LIMIT 1
Binary data inserted for `string` type on column `encrypted_password`
SQL (12.3ms) INSERT INTO "users" ("avatar_id", "biography", "birth_date", "created_at", "email", "encrypted_password", "first_name", "job", "last_name", "password", "remember_created_at", "reset_password_sent_at", "reset_password_token", "university", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["avatar_id", nil], ["biography", nil], ["birth_date", nil], ["created_at", Wed, 04 Jul 2012 09:36:05 UTC +00:00], ["email", "foo2@example.com"], ["encrypted_password", "$2a$04$KJUJDfAFlsuZR8MlmmxiuOqV2ii6CwyOb6qNsYODBL5TwidoVpMDK"], ["first_name", "FirstName2"], ["job", nil], ["last_name", "LastName2"], ["password", nil], ["remember_created_at", nil], ["reset_password_sent_at", nil], ["reset_password_token", nil], ["university", nil], ["updated_at", Wed, 04 Jul 2012 09:36:05 UTC +00:00]]
 (0.1ms) RELEASE SAVEPOINT active_record_1
Started POST "/users/sign_in" for 127.0.0.1 at 2012-07-04 11:36:07 +0200
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "user"=>{"email"=>"", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
Completed 401 Unauthorized in 1ms
Processing by Devise::SessionsController#new as HTML
Parameters: {"utf8"=>"✓", "user"=>{"email"=>"", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
Rendered devise/shared/_links.erb (26.4ms)
Rendered devise/menu/_login_form.html.erb (1.6ms)
Rendered layouts/_header.html.erb (2.0ms)
Rendered shared/_flash_messages.html.erb (0.1ms)
Completed 200 OK in 36ms (Views: 35.1ms | ActiveRecord: 0.0ms)
 (1.0ms) rollback transaction
FactoryGirl.define do
factory :user do
sequence( :first_name ) { |n| "FirstName#{n}" }
sequence( :last_name ) { |n| "LastName#{n}" }
sequence( :email ) { |n| "foo#{n}@example.com" }
password 'foobar'
password_confirmation 'foobar'
created_at Time.now
updated_at Time.now
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment