Skip to content

Commit 8ddfe50

Browse files
committed
Add ability to override session creation in request specs
1 parent ba60cac commit 8ddfe50

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Used to modify session variables within request tests
2+
class SessionsController < ApplicationController
3+
def create
4+
vars = params.permit(session_vars: {})
5+
vars[:session_vars].each do |var, value|
6+
session[var] = value
7+
end
8+
head :created
9+
end
10+
end

spec/dummy/config/routes.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
33
root to: 'home#show'
44

5+
resource :session, only: %i[create]
6+
57
# Make sure we don't match auth routes
68
get '/*slug', to: 'home#show', constraints: { slug: /(?!(rpi_)?auth\/).*/ }
79
end

spec/dummy/spec/requests/auth_request_spec.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,8 @@
186186
let(:session_keys_to_persist) { 'foo bar' }
187187

188188
it 'persists provided session keys on login' do
189+
set_session(foo: 'bar')
189190
post '/auth/rpi'
190-
191-
session[:foo] = 'bar'
192191
previous_foo = session[:foo]
193192
puts "Initial session #{session.to_hash} \n\n"
194193

spec/support/request_helpers.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,13 @@ def sign_in(user)
1313
post '/auth/rpi'
1414
follow_redirect!
1515
end
16+
17+
def set_session(vars = {})
18+
post session_path, params: { session_vars: vars }
19+
expect(response).to have_http_status(:created)
20+
21+
vars.each_key do |var|
22+
expect(session[var]).to be_present
23+
end
24+
end
1625
end

0 commit comments

Comments
 (0)