Commit f46d8c8
Changed files (8)
app
controllers
app/controllers/sessions_controller.rb
@@ -22,6 +22,7 @@ class SessionsController < ApplicationController
def destroy
reset_session
+ cookies.delete(:raphael)
redirect_to new_session_path
end
end
spec/controllers/environments_controller_spec.rb
@@ -1,12 +1,9 @@
require 'rails_helper'
describe EnvironmentsController do
- let(:user) { user_session.user }
- let(:user_session) { create(:session) }
+ let(:user) { create(:user) }
- before :each do
- session[:user_session_id] = user_session.id
- end
+ before { http_login(user) }
describe '#index' do
let(:first_env) { create(:environment) }
spec/controllers/failures_controller_spec.rb
@@ -1,12 +1,9 @@
require 'rails_helper'
describe FailuresController do
- let(:user) { user_session.user }
- let(:user_session) { create(:session) }
+ let(:user) { create(:user) }
- before :each do
- session[:user_session_id] = user_session.id
- end
+ before { http_login(user) }
describe "#index" do
let!(:failure) { create(:failure) }
spec/controllers/services_controller_spec.rb
@@ -1,12 +1,9 @@
require 'rails_helper'
describe ServicesController do
- let(:user) { user_session.user }
- let(:user_session) { create(:session) }
+ let(:user) { create(:user) }
- before :each do
- session[:user_session_id] = user_session.id
- end
+ before { http_login(user) }
describe "#index" do
let!(:service) { create(:service) }
spec/controllers/sessions_controller_spec.rb
@@ -44,8 +44,9 @@ describe SessionsController do
let(:user_session) { create(:session) }
it "removes the current session" do
- delete :destroy, { id: 'mine' }, { user_session_id: user_session.id }
- expect(session[:user_session_id]).to be_nil
+ cookies.signed[:raphael] = user_session.id
+ delete :destroy, { id: 'mine' }
+ expect(request.cookies[:raphael]).to be_nil
expect(response).to redirect_to(new_session_path)
end
end
spec/controllers/videos_controller_spec.rb
@@ -1,12 +1,9 @@
require 'rails_helper'
describe VideosController do
- let(:user_session) { create(:session) }
- let(:user) { user_session.user }
+ let(:user) { create(:user) }
- before :each do
- session[:user_session_id] = user_session.id
- end
+ before { http_login(user) }
describe "#index" do
render_views
spec/support/authentication.rb
@@ -0,0 +1,6 @@
+module HttpAuthentication
+ def http_login(user, password = 'password')
+ user_session = create(:session, user: user)
+ cookies.signed[:raphael] = user_session.id
+ end
+end
spec/rails_helper.rb
@@ -18,7 +18,7 @@ require 'rspec/rails'
# directory. Alternatively, in the individual `*_spec.rb` files, manually
# require only the support files necessary.
#
-# Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
+Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
# Checks for pending migrations before tests are run.
# If you are not using ActiveRecord, you can remove this line.
@@ -26,6 +26,7 @@ ActiveRecord::Migration.maintain_test_schema!
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
+ config.include HttpAuthentication, type: :controller
config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)