summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2017-02-06 17:19:37 -0600
committerDouwe Maan <douwe@selenight.nl>2017-02-06 17:19:37 -0600
commit46dff6910d2f618222e4213dca55ba68b5b66984 (patch)
tree4d34f8f3d530d4d82841af383f04bd94b6cfaaa9 /spec/models
parent426680def4bdeb7c6b37d8a0538fc73c39942495 (diff)
downloadgitlab-ce-46dff6910d2f618222e4213dca55ba68b5b66984.tar.gz
More backport
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/user_spec.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 6d58b1455c4..c7c3bfdd0e7 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -1422,4 +1422,37 @@ describe User, models: true do
expect(user.project_authorizations.where(access_level: Gitlab::Access::REPORTER).exists?).to eq(true)
end
end
+
+ describe '#access_level=' do
+ let(:user) { build(:user) }
+
+ it 'does nothing for an invalid access level' do
+ user.access_level = :invalid_access_level
+
+ expect(user.access_level).to eq(:regular)
+ expect(user.admin).to be false
+ end
+
+ it "assigns the 'admin' access level" do
+ user.access_level = :admin
+
+ expect(user.access_level).to eq(:admin)
+ expect(user.admin).to be true
+ end
+
+ it "doesn't clear existing access levels when an invalid access level is passed in" do
+ user.access_level = :admin
+ user.access_level = :invalid_access_level
+
+ expect(user.access_level).to eq(:admin)
+ expect(user.admin).to be true
+ end
+
+ it "accepts string values in addition to symbols" do
+ user.access_level = 'admin'
+
+ expect(user.access_level).to eq(:admin)
+ expect(user.admin).to be true
+ end
+ end
end