diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-02-06 17:19:37 -0600 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2017-02-06 17:19:37 -0600 |
commit | 46dff6910d2f618222e4213dca55ba68b5b66984 (patch) | |
tree | 4d34f8f3d530d4d82841af383f04bd94b6cfaaa9 /spec/models | |
parent | 426680def4bdeb7c6b37d8a0538fc73c39942495 (diff) | |
download | gitlab-ce-46dff6910d2f618222e4213dca55ba68b5b66984.tar.gz |
More backport
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/user_spec.rb | 33 |
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 |