Added method to perform a yielded action with an ensured UserInfo.current_user_id and added new and missing tests.
This commit is contained in:
parent
0fd75fa482
commit
8ef2970234
2 changed files with 53 additions and 0 deletions
|
@ -6,4 +6,16 @@ module UserInfo
|
||||||
def self.current_user_id=(user_id)
|
def self.current_user_id=(user_id)
|
||||||
Thread.current[:user_id] = user_id
|
Thread.current[:user_id] = user_id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.ensure_current_user_id
|
||||||
|
if UserInfo.current_user_id.nil?
|
||||||
|
UserInfo.current_user_id = 1
|
||||||
|
reset_current_user_id = true
|
||||||
|
end
|
||||||
|
|
||||||
|
yield
|
||||||
|
|
||||||
|
return if !reset_current_user_id
|
||||||
|
UserInfo.current_user_id = nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
41
spec/lib/user_info_spec.rb
Normal file
41
spec/lib/user_info_spec.rb
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe UserInfo do
|
||||||
|
|
||||||
|
describe '#current_user_id' do
|
||||||
|
|
||||||
|
it 'is nil by default' do
|
||||||
|
expect(described_class.current_user_id).to be nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'takes a User ID as paramter and returns it' do
|
||||||
|
test_id = 99
|
||||||
|
described_class.current_user_id = test_id
|
||||||
|
expect(described_class.current_user_id).to eq(test_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#ensure_current_user_id' do
|
||||||
|
|
||||||
|
it 'uses and keeps set User IDs' do
|
||||||
|
test_id = 99
|
||||||
|
described_class.current_user_id = test_id
|
||||||
|
|
||||||
|
described_class.ensure_current_user_id do
|
||||||
|
expect(described_class.current_user_id).to eq(test_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(described_class.current_user_id).to eq(test_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'sets and resets temporary User ID 1' do
|
||||||
|
described_class.current_user_id = nil
|
||||||
|
|
||||||
|
described_class.ensure_current_user_id do
|
||||||
|
expect(described_class.current_user_id).to eq(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(described_class.current_user_id).to be nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue