summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2017-01-19 19:58:37 +0100
committerYorick Peterse <yorickpeterse@gmail.com>2017-01-21 13:30:17 +0100
commit0e755df25cc283baf7ebd38a767bbf50d0ae1a08 (patch)
tree35162756df2297719e41e8a95cda273e6bc426ad /spec/models
parent1bb0191a8a5302448bd0ebdbeaf5a3113723193d (diff)
downloadgitlab-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.rb2
-rw-r--r--spec/models/members/project_member_spec.rb2
-rw-r--r--spec/models/user_spec.rb4
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