|
1 | 1 | require 'rails_helper'
|
| 2 | +require 'models' |
2 | 3 |
|
3 | 4 | RSpec.describe PostsController, type: :controller do
|
4 | 5 | controller do
|
5 | 6 | end
|
6 | 7 |
|
7 |
| - before(:each) { define_first_post } |
| 8 | + before(:each) do |
| 9 | + @zeus = User.create!(name: 'Zeus') |
| 10 | + @hera = User.create!(name: 'Hera') |
| 11 | + User.stamper = @zeus |
| 12 | + |
| 13 | + @delynn = Person.create!(name: 'Delynn') |
| 14 | + @nicole = Person.create!(name: 'Nicole') |
| 15 | + |
| 16 | + Person.stamper = @delynn |
| 17 | + define_first_post |
| 18 | + end |
8 | 19 |
|
9 | 20 | context 'when updating a Post' do
|
10 | 21 | it 'sets the correct updater' do
|
11 |
| - request.session = { person_id: @delynn.id } |
12 |
| - post :update, id: @first_post.id, post: { title: 'Different' } |
| 22 | + request.session[:person_id] = @delynn.id |
| 23 | + post :update, params: { id: @first_post.id, post: { title: 'Different' } } |
13 | 24 |
|
14 | 25 | expect(response.status).to eq(200)
|
15 | 26 | expect(controller.instance_variable_get(:@post).title).to eq('Different')
|
|
19 | 30 |
|
20 | 31 | context 'when handling multiple requests' do
|
21 | 32 | def simulate_second_request
|
22 |
| - old_request_session = request.session |
23 |
| - request.session = { person_id: @nicole.id } |
| 33 | + old_request_session_user_id = request.session[:person_id] |
| 34 | + request.session[:person_id] = @nicole.id |
24 | 35 |
|
25 |
| - post :update, id: @first_post.id, post: { title: 'Different Second'} |
| 36 | + post :update, params: { id: @first_post.id, post: { title: 'Different Second'} } |
26 | 37 | expect(controller.instance_variable_get(:@post).updater).to eq(@nicole)
|
27 | 38 | ensure
|
28 |
| - request.session = old_request_session |
| 39 | + request.session[:person_id] = old_request_session_user_id |
29 | 40 | end
|
30 | 41 |
|
31 | 42 | it 'sets the correct updater' do
|
32 |
| - request.session = { person_id: @delynn.id } |
33 |
| - get :edit, id: @first_post.id |
| 43 | + request.session[:person_id] = @delynn.id |
| 44 | + get :edit, params: { id: @first_post.id } |
34 | 45 | expect(response.status).to eq(200)
|
35 | 46 |
|
36 | 47 | simulate_second_request
|
37 | 48 |
|
38 |
| - post :update, id: @first_post.id, post: { title: 'Different' } |
| 49 | + post :update, params: { id: @first_post.id, post: { title: 'Different' } } |
39 | 50 | expect(response.status).to eq(200)
|
40 | 51 | expect(controller.instance_variable_get(:@post).title).to eq('Different')
|
41 | 52 | expect(controller.instance_variable_get(:@post).updater).to eq(@delynn)
|
|
0 commit comments