diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index 835e049..30ac1c4 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -5,11 +5,16 @@ class SessionsController < ApplicationController
def create
@user = User.find_by(username: params[:username])
if @user && @user.authenticate(params[:password])
- sessions[:user_id] = @user.id
+ session[:user_id] = @user.id
end
redirect_to '/welcome'
end
+ def delete
+ session.delete(:user_id)
+ redirect_to '/welcome'
+ end
+
def welcome
end
end
diff --git a/app/views/sessions/welcome.html.erb b/app/views/sessions/welcome.html.erb
index 71e1369..640f008 100644
--- a/app/views/sessions/welcome.html.erb
+++ b/app/views/sessions/welcome.html.erb
@@ -1,6 +1,8 @@
Welcome
<% if logged_in? %>
You are Logged In, <%= current_user.username %>
+ <%= button_to "Logout", '/logout', method: :get%>
+<%else%>
+ <%= button_to "Login", '/login', method: :get%>
+ <%= button_to "Sign Up", '/users/new', method: :get%>
<%end%>
-<%= button_to "Login", '/login', method: :get%>
-<%= button_to "Sign Up", '/users/new', method: :get%>
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 4e90759..4c00a41 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,6 +1,7 @@
Rails.application.routes.draw do
resources :users, only: [:new, :create]
get 'login', to: 'sessions#new'
+ get 'logout', to: 'sessions#delete'
post 'login', to: 'sessions#create'
get 'welcome', to: 'sessions#welcome'
resources :books
diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb
index c959bc7..5a7a4f2 100644
--- a/spec/controllers/sessions_controller_spec.rb
+++ b/spec/controllers/sessions_controller_spec.rb
@@ -14,6 +14,13 @@ RSpec.describe SessionsController do
expect(subject).to redirect_to('/welcome')
end
end
+ describe 'get delete' do
+ # TODO test session status
+ subject { get 'delete' }
+ it 'redirects to /welcome' do
+ expect(subject).to redirect_to('/welcome')
+ end
+ end
describe 'get welcome' do
subject { get 'welcome' }
it 'renders the sessions/welcome template' do