diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2017-01-19 19:58:37 +0100 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2017-01-21 13:30:17 +0100 |
commit | 0e755df25cc283baf7ebd38a767bbf50d0ae1a08 (patch) | |
tree | 35162756df2297719e41e8a95cda273e6bc426ad /spec/models | |
parent | 1bb0191a8a5302448bd0ebdbeaf5a3113723193d (diff) | |
download | gitlab-ce-refresh-authorizations-without-sidekiq.tar.gz |
Stop using Sidekiq for authorized projectsrefresh-authorizations-without-sidekiq
Instead of using Sidekiq we now reset the column
users.authorized_projects_populated whenever authorizations have to be
refreshed. The next time the data is requested User#authorized_projects
will automatically refresh the data before returning it. When refreshing
data for single users we refresh the data right away.
This should solve any race conditions that may occur due to the
scheduling taking place in a transaction. It also simplifies the setup
by removing Sidekiq. This does come at the cost of some requests being a
bit slower whenever data has to be refreshed. This however should occur
only when authorizations have been changed, a process that thankfully
does not happen very often.
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/members/group_member_spec.rb | 2 | ||||
-rw-r--r-- | spec/models/members/project_member_spec.rb | 2 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 4 |
3 files changed, 6 insertions, 2 deletions
diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb index 370aeb9e0a9..bf6c7591ac2 100644 --- a/spec/models/members/group_member_spec.rb +++ b/spec/models/members/group_member_spec.rb @@ -61,7 +61,7 @@ describe GroupMember, models: true do describe '#after_accept_request' do it 'calls NotificationService.accept_group_access_request' do - member = create(:group_member, user: build_stubbed(:user), requested_at: Time.now) + member = create(:group_member, user: create(:user), requested_at: Time.now) expect_any_instance_of(NotificationService).to receive(:new_group_member) diff --git a/spec/models/members/project_member_spec.rb b/spec/models/members/project_member_spec.rb index 68f72f5c86e..d24d713edab 100644 --- a/spec/models/members/project_member_spec.rb +++ b/spec/models/members/project_member_spec.rb @@ -150,7 +150,7 @@ describe ProjectMember, models: true do describe 'notifications' do describe '#after_accept_request' do it 'calls NotificationService.new_project_member' do - member = create(:project_member, user: build_stubbed(:user), requested_at: Time.now) + member = create(:project_member, user: create(:user), requested_at: Time.now) expect_any_instance_of(NotificationService).to receive(:new_project_member) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 8b20ee81614..d8a1c5c81d2 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1144,9 +1144,13 @@ describe User, models: true do user = create(:user) member = group.add_developer(user) + user.reload + expect(user.authorized_projects).to include(project) member.destroy + user.reload + expect(user.authorized_projects).not_to include(project) end |