Skip to content
Snippets Groups Projects
Commit 1ce5bcac authored by Heinrich Lee Yu's avatar Heinrich Lee Yu :basketball:
Browse files

Remove code related to object hierarchy in MySQL

These are not required because MySQL is not
supported anymore
parent ba997f3c
No related branches found
No related tags found
No related merge requests found
Showing
with 73 additions and 144 deletions
Loading
Loading
@@ -128,7 +128,7 @@ describe Issuable do
expect(build_issuable(milestone.id).milestone_available?).to be_truthy
end
 
it 'returns true with a milestone from the the parent of the issue project group', :nested_groups do
it 'returns true with a milestone from the the parent of the issue project group' do
parent = create(:group)
group.update(parent: parent)
milestone = create(:milestone, group: parent)
Loading
Loading
Loading
Loading
@@ -71,7 +71,7 @@ describe Group do
end
end
 
describe '#notification_settings', :nested_groups do
describe '#notification_settings' do
let(:user) { create(:user) }
let(:group) { create(:group) }
let(:sub_group) { create(:group, parent_id: group.id) }
Loading
Loading
@@ -237,7 +237,7 @@ describe Group do
it { is_expected.to match_array([private_group, internal_group, group]) }
end
 
context 'when user is a member of private subgroup', :postgresql do
context 'when user is a member of private subgroup' do
let!(:private_subgroup) { create(:group, :private, parent: private_group) }
 
before do
Loading
Loading
@@ -416,7 +416,7 @@ describe Group do
it { expect(group.last_owner?(@members[:owner])).to be_falsy }
end
 
context 'with owners from a parent', :postgresql do
context 'with owners from a parent' do
before do
parent_group = create(:group)
create(:group_member, :owner, group: parent_group)
Loading
Loading
@@ -524,7 +524,7 @@ describe Group do
it { expect(subject.parent).to be_kind_of(described_class) }
end
 
describe '#members_with_parents', :nested_groups do
describe '#members_with_parents' do
let!(:group) { create(:group, :nested) }
let!(:maintainer) { group.parent.add_user(create(:user), GroupMember::MAINTAINER) }
let!(:developer) { group.add_user(create(:user), GroupMember::DEVELOPER) }
Loading
Loading
@@ -535,7 +535,7 @@ describe Group do
end
end
 
describe '#direct_and_indirect_members', :nested_groups do
describe '#direct_and_indirect_members' do
let!(:group) { create(:group, :nested) }
let!(:sub_group) { create(:group, parent: group) }
let!(:maintainer) { group.parent.add_user(create(:user), GroupMember::MAINTAINER) }
Loading
Loading
@@ -552,7 +552,7 @@ describe Group do
end
end
 
describe '#users_with_descendants', :nested_groups do
describe '#users_with_descendants' do
let(:user_a) { create(:user) }
let(:user_b) { create(:user) }
 
Loading
Loading
@@ -571,7 +571,7 @@ describe Group do
end
end
 
describe '#direct_and_indirect_users', :nested_groups do
describe '#direct_and_indirect_users' do
let(:user_a) { create(:user) }
let(:user_b) { create(:user) }
let(:user_c) { create(:user) }
Loading
Loading
@@ -601,7 +601,7 @@ describe Group do
end
end
 
describe '#project_users_with_descendants', :nested_groups do
describe '#project_users_with_descendants' do
let(:user_a) { create(:user) }
let(:user_b) { create(:user) }
let(:user_c) { create(:user) }
Loading
Loading
@@ -678,7 +678,7 @@ describe Group do
end
end
 
context 'sub groups and projects', :nested_groups do
context 'sub groups and projects' do
it 'enables two_factor_requirement for group member' do
group.add_user(user, GroupMember::OWNER)
 
Loading
Loading
@@ -687,7 +687,7 @@ describe Group do
expect(user.reload.require_two_factor_authentication_from_group).to be_truthy
end
 
context 'expanded group members', :nested_groups do
context 'expanded group members' do
let(:indirect_user) { create(:user) }
 
it 'enables two_factor_requirement for subgroup member' do
Loading
Loading
@@ -720,7 +720,7 @@ describe Group do
expect(user.reload.require_two_factor_authentication_from_group).to be_falsey
end
 
it 'does not enable two_factor_requirement for subgroup child project member', :nested_groups do
it 'does not enable two_factor_requirement for subgroup child project member' do
subgroup = create(:group, :nested, parent: group)
project = create(:project, group: subgroup)
project.add_maintainer(user)
Loading
Loading
@@ -820,7 +820,7 @@ describe Group do
it_behaves_like 'ref is protected'
end
 
context 'when group has children', :postgresql do
context 'when group has children' do
let(:group_child) { create(:group, parent: group) }
let(:group_child_2) { create(:group, parent: group_child) }
let(:group_child_3) { create(:group, parent: group_child_2) }
Loading
Loading
@@ -843,7 +843,7 @@ describe Group do
end
end
 
describe '#highest_group_member', :nested_groups do
describe '#highest_group_member' do
let(:nested_group) { create(:group, parent: group) }
let(:nested_group_2) { create(:group, parent: nested_group) }
let(:user) { create(:user) }
Loading
Loading
@@ -932,7 +932,7 @@ describe Group do
it { is_expected.to eq(config) }
end
 
context 'with parent groups', :nested_groups do
context 'with parent groups' do
where(:instance_value, :parent_value, :group_value, :config) do
# Instance level enabled
true | nil | nil | { status: true, scope: :instance }
Loading
Loading
Loading
Loading
@@ -69,7 +69,7 @@ describe GroupMember do
end
end
 
context 'access levels', :nested_groups do
context 'access levels' do
context 'with parent group' do
it_behaves_like 'inherited access level as a member of entity' do
let(:entity) { create(:group, parent: parent_entity) }
Loading
Loading
Loading
Loading
@@ -130,7 +130,7 @@ describe ProjectMember do
end
end
 
context 'with parent group and a subgroup', :nested_groups do
context 'with parent group and a subgroup' do
it_behaves_like 'inherited access level as a member of entity' do
let(:subgroup) { create(:group, parent: parent_entity) }
let(:entity) { create(:project, group: subgroup) }
Loading
Loading
Loading
Loading
@@ -56,7 +56,7 @@ RSpec.describe Namespace::RootStorageStatistics, type: :model do
 
it_behaves_like 'data refresh'
 
context 'with subgroups', :nested_groups do
context 'with subgroups' do
let(:subgroup1) { create(:group, parent: namespace)}
let(:subgroup2) { create(:group, parent: subgroup1)}
 
Loading
Loading
Loading
Loading
@@ -191,7 +191,7 @@ describe Namespace do
end
end
 
describe '#ancestors_upto', :nested_groups do
describe '#ancestors_upto' do
let(:parent) { create(:group) }
let(:child) { create(:group, parent: parent) }
let(:child2) { create(:group, parent: child) }
Loading
Loading
@@ -271,7 +271,7 @@ describe Namespace do
end
end
 
context 'with subgroups', :nested_groups do
context 'with subgroups' do
let(:parent) { create(:group, name: 'parent', path: 'parent') }
let(:new_parent) { create(:group, name: 'new_parent', path: 'new_parent') }
let(:child) { create(:group, name: 'child', path: 'child', parent: parent) }
Loading
Loading
@@ -475,7 +475,7 @@ describe Namespace do
end
end
 
describe '#self_and_hierarchy', :nested_groups do
describe '#self_and_hierarchy' do
let!(:group) { create(:group, path: 'git_lab') }
let!(:nested_group) { create(:group, parent: group) }
let!(:deep_nested_group) { create(:group, parent: nested_group) }
Loading
Loading
@@ -490,7 +490,7 @@ describe Namespace do
end
end
 
describe '#ancestors', :nested_groups do
describe '#ancestors' do
let(:group) { create(:group) }
let(:nested_group) { create(:group, parent: group) }
let(:deep_nested_group) { create(:group, parent: nested_group) }
Loading
Loading
@@ -504,7 +504,7 @@ describe Namespace do
end
end
 
describe '#self_and_ancestors', :nested_groups do
describe '#self_and_ancestors' do
let(:group) { create(:group) }
let(:nested_group) { create(:group, parent: group) }
let(:deep_nested_group) { create(:group, parent: nested_group) }
Loading
Loading
@@ -518,7 +518,7 @@ describe Namespace do
end
end
 
describe '#descendants', :nested_groups do
describe '#descendants' do
let!(:group) { create(:group, path: 'git_lab') }
let!(:nested_group) { create(:group, parent: group) }
let!(:deep_nested_group) { create(:group, parent: nested_group) }
Loading
Loading
@@ -534,7 +534,7 @@ describe Namespace do
end
end
 
describe '#self_and_descendants', :nested_groups do
describe '#self_and_descendants' do
let!(:group) { create(:group, path: 'git_lab') }
let!(:nested_group) { create(:group, parent: group) }
let!(:deep_nested_group) { create(:group, parent: nested_group) }
Loading
Loading
@@ -550,7 +550,7 @@ describe Namespace do
end
end
 
describe '#users_with_descendants', :nested_groups do
describe '#users_with_descendants' do
let(:user_a) { create(:user) }
let(:user_b) { create(:user) }
 
Loading
Loading
@@ -597,7 +597,7 @@ describe Namespace do
it { expect(group.all_pipelines.to_a).to match_array([pipeline1, pipeline2]) }
end
 
describe '#share_with_group_lock with subgroups', :nested_groups do
describe '#share_with_group_lock with subgroups' do
context 'when creating a subgroup' do
let(:subgroup) { create(:group, parent: root_group )}
 
Loading
Loading
@@ -738,7 +738,7 @@ describe Namespace do
end
 
describe '#root_ancestor' do
it 'returns the top most ancestor', :nested_groups do
it 'returns the top most ancestor' do
root_group = create(:group)
nested_group = create(:group, parent: root_group)
deep_nested_group = create(:group, parent: nested_group)
Loading
Loading
Loading
Loading
@@ -49,7 +49,7 @@ describe NotificationRecipient do
end
 
context '#notification_setting' do
context 'for child groups', :nested_groups do
context 'for child groups' do
let!(:moved_group) { create(:group) }
let(:group) { create(:group) }
let(:sub_group_1) { create(:group, parent: group) }
Loading
Loading
Loading
Loading
@@ -2,7 +2,7 @@
 
require 'spec_helper'
 
describe Postgresql::ReplicationSlot, :postgresql do
describe Postgresql::ReplicationSlot do
describe '.in_use?' do
it 'returns true when replication slots are present' do
expect(described_class).to receive(:exists?).and_return(true)
Loading
Loading
Loading
Loading
@@ -25,7 +25,7 @@ describe ProjectGroupLink do
expect(project_group_link).not_to be_valid
end
 
it "doesn't allow a project to be shared with an ancestor of the group it is in", :nested_groups do
it "doesn't allow a project to be shared with an ancestor of the group it is in" do
project_group_link.group = parent_group
 
expect(project_group_link).not_to be_valid
Loading
Loading
Loading
Loading
@@ -2292,7 +2292,7 @@ describe Project do
end
end
 
describe '#ancestors_upto', :nested_groups do
describe '#ancestors_upto' do
let(:parent) { create(:group) }
let(:child) { create(:group, parent: parent) }
let(:child2) { create(:group, parent: child) }
Loading
Loading
@@ -2331,7 +2331,7 @@ describe Project do
it { is_expected.to eq(group) }
end
 
context 'in a nested group', :nested_groups do
context 'in a nested group' do
let(:root) { create(:group) }
let(:child) { create(:group, parent: root) }
let(:project) { create(:project, group: child) }
Loading
Loading
@@ -2479,7 +2479,7 @@ describe Project do
expect(forked_project.in_fork_network_of?(project)).to be_truthy
end
 
it 'is true for a fork of a fork', :postgresql do
it 'is true for a fork of a fork' do
other_fork = fork_project(forked_project)
 
expect(other_fork.in_fork_network_of?(project)).to be_truthy
Loading
Loading
@@ -3801,7 +3801,7 @@ describe Project do
end
end
 
context 'when enabled on root parent', :nested_groups do
context 'when enabled on root parent' do
let(:parent_group) { create(:group, parent: create(:group, :auto_devops_enabled)) }
 
context 'when auto devops instance enabled' do
Loading
Loading
@@ -3821,7 +3821,7 @@ describe Project do
end
end
 
context 'when disabled on root parent', :nested_groups do
context 'when disabled on root parent' do
let(:parent_group) { create(:group, parent: create(:group, :auto_devops_disabled)) }
 
context 'when auto devops instance enabled' do
Loading
Loading
@@ -4264,18 +4264,16 @@ describe Project do
expect(project.badges.count).to eq 3
end
 
if Group.supports_nested_objects?
context 'with nested_groups' do
let(:parent_group) { create(:group) }
context 'with nested_groups' do
let(:parent_group) { create(:group) }
 
before do
create_list(:group_badge, 2, group: project_group)
project_group.update(parent: parent_group)
end
before do
create_list(:group_badge, 2, group: project_group)
project_group.update(parent: parent_group)
end
 
it 'returns the project and the project nested groups badges' do
expect(project.badges.count).to eq 5
end
it 'returns the project and the project nested groups badges' do
expect(project.badges.count).to eq 5
end
end
end
Loading
Loading
Loading
Loading
@@ -262,11 +262,7 @@ describe Todo do
todo2 = create(:todo, group: child_group)
todos = described_class.for_group_and_descendants(parent_group)
 
expect(todos).to include(todo1)
# Nested groups only work on PostgreSQL, so on MySQL todo2 won't be
# present.
expect(todos).to include(todo2) if Gitlab::Database.postgresql?
expect(todos).to contain_exactly(todo1, todo2)
end
end
 
Loading
Loading
Loading
Loading
@@ -985,7 +985,7 @@ describe User do
it { expect(user.namespaces).to contain_exactly(user.namespace, group) }
it { expect(user.manageable_namespaces).to contain_exactly(user.namespace, group) }
 
context 'with child groups', :nested_groups do
context 'with child groups' do
let!(:subgroup) { create(:group, parent: group) }
 
describe '#manageable_namespaces' do
Loading
Loading
@@ -2082,11 +2082,7 @@ describe User do
 
subject { user.membership_groups }
 
if Group.supports_nested_objects?
it { is_expected.to contain_exactly parent_group, child_group }
else
it { is_expected.to contain_exactly parent_group }
end
it { is_expected.to contain_exactly parent_group, child_group }
end
 
describe '#authorizations_for_projects' do
Loading
Loading
@@ -2386,7 +2382,7 @@ describe User do
it_behaves_like :member
end
 
context 'with subgroup with different owner for project runner', :nested_groups do
context 'with subgroup with different owner for project runner' do
let(:group) { create(:group) }
let(:another_user) { create(:user) }
let(:subgroup) { create(:group, parent: group) }
Loading
Loading
@@ -2490,22 +2486,16 @@ describe User do
group.add_owner(user)
end
 
if Group.supports_nested_objects?
it 'returns all groups' do
is_expected.to match_array [
group,
nested_group_1, nested_group_1_1,
nested_group_2, nested_group_2_1
]
end
else
it 'returns the top-level groups' do
is_expected.to match_array [group]
end
it 'returns all groups' do
is_expected.to match_array [
group,
nested_group_1, nested_group_1_1,
nested_group_2, nested_group_2_1
]
end
end
 
context 'user is member of the first child (internal node), branch 1', :nested_groups do
context 'user is member of the first child (internal node), branch 1' do
before do
nested_group_1.add_owner(user)
end
Loading
Loading
@@ -2518,7 +2508,7 @@ describe User do
end
end
 
context 'user is member of the first child (internal node), branch 2', :nested_groups do
context 'user is member of the first child (internal node), branch 2' do
before do
nested_group_2.add_owner(user)
end
Loading
Loading
@@ -2531,7 +2521,7 @@ describe User do
end
end
 
context 'user is member of the last child (leaf node)', :nested_groups do
context 'user is member of the last child (leaf node)' do
before do
nested_group_1_1.add_owner(user)
end
Loading
Loading
@@ -2687,7 +2677,7 @@ describe User do
end
end
 
context 'with 2FA requirement from expanded groups', :nested_groups do
context 'with 2FA requirement from expanded groups' do
let!(:group1) { create :group, require_two_factor_authentication: true }
let!(:group1a) { create :group, parent: group1 }
 
Loading
Loading
@@ -2702,7 +2692,7 @@ describe User do
end
end
 
context 'with 2FA requirement on nested child group', :nested_groups do
context 'with 2FA requirement on nested child group' do
let!(:group1) { create :group, require_two_factor_authentication: false }
let!(:group1a) { create :group, require_two_factor_authentication: true, parent: group1 }
 
Loading
Loading
Loading
Loading
@@ -58,7 +58,7 @@ describe GroupMemberPolicy do
end
end
 
context 'with the group parent', :postgresql do
context 'with the group parent' do
let(:current_user) { create :user }
let(:subgroup) { create(:group, :private, parent: group)}
 
Loading
Loading
Loading
Loading
@@ -51,7 +51,7 @@ describe GroupPolicy do
 
it { expect_allowed(:read_label, :read_list) }
 
context 'in subgroups', :nested_groups do
context 'in subgroups' do
let(:subgroup) { create(:group, :private, parent: group) }
let(:project) { create(:project, namespace: subgroup) }
 
Loading
Loading
@@ -104,8 +104,6 @@ describe GroupPolicy do
end
 
it 'allows every maintainer permission plus creating subgroups' do
allow(Group).to receive(:supports_nested_objects?).and_return(true)
create_subgroup_permission = [:create_subgroup]
updated_maintainer_permissions =
maintainer_permissions + create_subgroup_permission
Loading
Loading
@@ -122,8 +120,6 @@ describe GroupPolicy do
 
context 'with subgroup_creation_level set to owner' do
it 'allows every maintainer permission' do
allow(Group).to receive(:supports_nested_objects?).and_return(true)
expect_allowed(*guest_permissions)
expect_allowed(*reporter_permissions)
expect_allowed(*developer_permissions)
Loading
Loading
@@ -137,8 +133,6 @@ describe GroupPolicy do
let(:current_user) { owner }
 
it do
allow(Group).to receive(:supports_nested_objects?).and_return(true)
expect_allowed(*guest_permissions)
expect_allowed(*reporter_permissions)
expect_allowed(*developer_permissions)
Loading
Loading
@@ -151,8 +145,6 @@ describe GroupPolicy do
let(:current_user) { admin }
 
it do
allow(Group).to receive(:supports_nested_objects?).and_return(true)
expect_allowed(*guest_permissions)
expect_allowed(*reporter_permissions)
expect_allowed(*developer_permissions)
Loading
Loading
@@ -161,52 +153,7 @@ describe GroupPolicy do
end
end
 
describe 'when nested group support feature is disabled' do
before do
allow(Group).to receive(:supports_nested_objects?).and_return(false)
end
context 'admin' do
let(:current_user) { admin }
it 'allows every owner permission except creating subgroups' do
create_subgroup_permission = [:create_subgroup]
updated_owner_permissions =
owner_permissions - create_subgroup_permission
expect_disallowed(*create_subgroup_permission)
expect_allowed(*updated_owner_permissions)
end
end
context 'owner' do
let(:current_user) { owner }
it 'allows every owner permission except creating subgroups' do
create_subgroup_permission = [:create_subgroup]
updated_owner_permissions =
owner_permissions - create_subgroup_permission
expect_disallowed(*create_subgroup_permission)
expect_allowed(*updated_owner_permissions)
end
end
context 'maintainer' do
let(:current_user) { maintainer }
it 'allows every maintainer permission except creating subgroups' do
create_subgroup_permission = [:create_subgroup]
updated_maintainer_permissions =
maintainer_permissions - create_subgroup_permission
expect_disallowed(*create_subgroup_permission)
expect_allowed(*updated_maintainer_permissions)
end
end
end
describe 'private nested group use the highest access level from the group and inherited permissions', :nested_groups do
describe 'private nested group use the highest access level from the group and inherited permissions' do
let(:nested_group) do
create(:group, :private, :owner_subgroup_creation_only, parent: group)
end
Loading
Loading
@@ -289,8 +236,6 @@ describe GroupPolicy do
let(:current_user) { owner }
 
it do
allow(Group).to receive(:supports_nested_objects?).and_return(true)
expect_allowed(*guest_permissions)
expect_allowed(*reporter_permissions)
expect_allowed(*developer_permissions)
Loading
Loading
Loading
Loading
@@ -43,7 +43,7 @@ describe Clusters::ClusterPresenter do
end
 
shared_examples 'ancestor clusters' do
context 'ancestor clusters', :nested_groups do
context 'ancestor clusters' do
let(:root_group) { create(:group, name: 'Root Group') }
let(:parent) { create(:group, name: 'parent', parent: root_group) }
let(:child) { create(:group, name: 'child', parent: parent) }
Loading
Loading
Loading
Loading
@@ -63,7 +63,7 @@ describe API::Boards do
end
end
 
describe "POST /groups/:id/boards/lists", :nested_groups do
describe "POST /groups/:id/boards/lists" do
set(:group) { create(:group) }
set(:board_parent) { create(:group, parent: group ) }
let(:url) { "/groups/#{board_parent.id}/boards/#{board.id}/lists" }
Loading
Loading
Loading
Loading
@@ -2,7 +2,7 @@
 
require 'spec_helper'
 
describe 'getting projects', :nested_groups do
describe 'getting projects' do
include GraphqlHelpers
 
let(:group) { create(:group) }
Loading
Loading
Loading
Loading
@@ -94,7 +94,7 @@ describe API::GroupLabels do
expect(response).to have_gitlab_http_status(400)
end
 
it "does not delete parent's group labels", :nested_groups do
it "does not delete parent's group labels" do
subgroup = create(:group, parent: group)
subgroup_label = create(:group_label, title: 'feature', group: subgroup)
 
Loading
Loading
@@ -127,7 +127,7 @@ describe API::GroupLabels do
expect(json_response['description']).to eq('test')
end
 
it "does not update parent's group label", :nested_groups do
it "does not update parent's group label" do
subgroup = create(:group, parent: group)
subgroup_label = create(:group_label, title: 'feature', group: subgroup)
 
Loading
Loading
Loading
Loading
@@ -530,7 +530,7 @@ describe API::Groups do
expect(json_response.length).to eq(2)
end
 
it "returns projects including those in subgroups", :nested_groups do
it "returns projects including those in subgroups" do
subgroup = create(:group, parent: group1)
create(:project, group: subgroup)
create(:project, group: subgroup)
Loading
Loading
@@ -642,7 +642,7 @@ describe API::Groups do
end
end
 
describe 'GET /groups/:id/subgroups', :nested_groups do
describe 'GET /groups/:id/subgroups' do
let!(:subgroup1) { create(:group, parent: group1) }
let!(:subgroup2) { create(:group, :private, parent: group1) }
let!(:subgroup3) { create(:group, :private, parent: group2) }
Loading
Loading
@@ -786,7 +786,7 @@ describe API::Groups do
expect(response).to have_gitlab_http_status(403)
end
 
context 'as owner', :nested_groups do
context 'as owner' do
before do
group2.add_owner(user1)
end
Loading
Loading
@@ -798,7 +798,7 @@ describe API::Groups do
end
end
 
context 'as maintainer', :nested_groups do
context 'as maintainer' do
before do
group2.add_maintainer(user1)
end
Loading
Loading
@@ -825,7 +825,7 @@ describe API::Groups do
expect(json_response["visibility"]).to eq(Gitlab::VisibilityLevel.string_level(Gitlab::CurrentSettings.current_application_settings.default_group_visibility))
end
 
it "creates a nested group", :nested_groups do
it "creates a nested group" do
parent = create(:group)
parent.add_owner(user3)
group = attributes_for(:group, { parent_id: parent.id })
Loading
Loading
Loading
Loading
@@ -82,7 +82,7 @@ describe API::Issues do
end
end
 
context 'when group has subgroups', :nested_groups do
context 'when group has subgroups' do
let(:subgroup_1) { create(:group, parent: group) }
let(:subgroup_2) { create(:group, parent: subgroup_1) }
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment