summaryrefslogtreecommitdiff
path: root/spec/models/user_spec.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2017-06-19 16:33:28 +0000
committerDouwe Maan <douwe@gitlab.com>2017-06-19 16:33:28 +0000
commit757c537fbc12b3f4fe3e4a98455de1ba9e5067f9 (patch)
tree1453801777573e3e6efd15cfb79a73c2bf8c9508 /spec/models/user_spec.rb
parentdbfafd442ee863e6614d0f6765285fcd06f3d843 (diff)
parent4449f57ea627aa92e7f011a488c11285465057d2 (diff)
downloadgitlab-ce-757c537fbc12b3f4fe3e4a98455de1ba9e5067f9.tar.gz
Merge branch '30725-reset-user-limits-when-unchecking-external-user' into 'master'
Ensures default user limits when external user is unchecked Closes #30725 See merge request !12218
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r--spec/models/user_spec.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 1a1bbd60504..f6b7120e2c9 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -451,6 +451,40 @@ describe User, models: true do
end
end
+ describe '#ensure_user_rights_and_limits' do
+ describe 'with external user' do
+ let(:user) { create(:user, external: true) }
+
+ it 'receives callback when external changes' do
+ expect(user).to receive(:ensure_user_rights_and_limits)
+
+ user.update_attributes(external: false)
+ end
+
+ it 'ensures correct rights and limits for user' do
+ stub_config_setting(default_can_create_group: true)
+
+ expect { user.update_attributes(external: false) }.to change { user.can_create_group }.to(true)
+ .and change { user.projects_limit }.to(current_application_settings.default_projects_limit)
+ end
+ end
+
+ describe 'without external user' do
+ let(:user) { create(:user, external: false) }
+
+ it 'receives callback when external changes' do
+ expect(user).to receive(:ensure_user_rights_and_limits)
+
+ user.update_attributes(external: true)
+ end
+
+ it 'ensures correct rights and limits for user' do
+ expect { user.update_attributes(external: true) }.to change { user.can_create_group }.to(false)
+ .and change { user.projects_limit }.to(0)
+ end
+ end
+ end
+
describe 'rss token' do
it 'ensures an rss token on read' do
user = create(:user, rss_token: nil)