Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/members/member_role_spec.rb')
-rw-r--r--spec/models/members/member_role_spec.rb33
1 files changed, 22 insertions, 11 deletions
diff --git a/spec/models/members/member_role_spec.rb b/spec/models/members/member_role_spec.rb
index e2691e2e78c..f9d6757bb90 100644
--- a/spec/models/members/member_role_spec.rb
+++ b/spec/models/members/member_role_spec.rb
@@ -9,39 +9,50 @@ RSpec.describe MemberRole do
end
describe 'validation' do
- subject { described_class.new }
+ subject(:member_role) { build(:member_role) }
it { is_expected.to validate_presence_of(:namespace) }
it { is_expected.to validate_presence_of(:base_access_level) }
- context 'for namespace' do
- subject { build(:member_role) }
-
+ context 'when for namespace' do
let_it_be(:root_group) { create(:group) }
context 'when namespace is a subgroup' do
it 'is invalid' do
subgroup = create(:group, parent: root_group)
- subject.namespace = subgroup
+ member_role.namespace = subgroup
- expect(subject).to be_invalid
+ expect(member_role).to be_invalid
+ expect(member_role.errors[:namespace]).to include(
+ s_("MemberRole|must be top-level namespace")
+ )
end
end
context 'when namespace is a root group' do
it 'is valid' do
- subject.namespace = root_group
+ member_role.namespace = root_group
- expect(subject).to be_valid
+ expect(member_role).to be_valid
end
end
context 'when namespace is not present' do
it 'is invalid with a different error message' do
- subject.namespace = nil
+ member_role.namespace = nil
+
+ expect(member_role).to be_invalid
+ expect(member_role.errors[:namespace]).to include(_("can't be blank"))
+ end
+ end
+
+ context 'when namespace is outside hierarchy of member' do
+ it 'creates a validation error' do
+ member_role.save!
+ member_role.namespace = create(:group)
- expect(subject).to be_invalid
- expect(subject.errors.full_messages).to eq(["Namespace can't be blank"])
+ expect(member_role).not_to be_valid
+ expect(member_role.errors[:namespace]).to include(s_("MemberRole|can't be changed"))
end
end
end