summaryrefslogtreecommitdiff
path: root/spec/controllers/groups_controller_spec.rb
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2017-09-05 16:57:46 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2017-10-04 22:46:49 +0200
commit80780018a931ce41047ab62ed7dd6c5f1e28f08b (patch)
tree2025c03c20806078d8cd0006a4b1084f53b0630a /spec/controllers/groups_controller_spec.rb
parent648c082a23f51bdf7151b6c5f716e74c4fe6a5bd (diff)
downloadgitlab-ce-80780018a931ce41047ab62ed7dd6c5f1e28f08b.tar.gz
Update `children` route to handle projects and groups
Diffstat (limited to 'spec/controllers/groups_controller_spec.rb')
-rw-r--r--spec/controllers/groups_controller_spec.rb82
1 files changed, 61 insertions, 21 deletions
diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb
index 83a2e82d78c..c96a44d6186 100644
--- a/spec/controllers/groups_controller_spec.rb
+++ b/spec/controllers/groups_controller_spec.rb
@@ -150,39 +150,79 @@ describe GroupsController do
end
end
- describe 'GET #subgroups', :nested_groups do
- let!(:public_subgroup) { create(:group, :public, parent: group) }
- let!(:private_subgroup) { create(:group, :private, parent: group) }
+ describe 'GET #children' do
+ context 'for projects' do
+ let!(:public_project) { create(:project, :public, namespace: group) }
+ let!(:private_project) { create(:project, :private, namespace: group) }
- context 'as a user' do
- before do
- sign_in(user)
- pending('spec the children path instead')
+ context 'as a user' do
+ before do
+ sign_in(user)
+ end
+
+ it 'shows all children' do
+ get :children, id: group.to_param, format: :json
+
+ expect(assigns(:children)).to contain_exactly(public_project, private_project)
+ end
+
+ context 'being member of private subgroup' do
+ it 'shows public and private children the user is member of' do
+ group_member.destroy!
+ private_project.add_guest(user)
+
+ get :children, id: group.to_param, format: :json
+
+ expect(assigns(:children)).to contain_exactly(public_project, private_project)
+ end
+ end
end
- it 'shows all subgroups' do
- get :subgroups, id: group.to_param
+ context 'as a guest' do
+ it 'shows the public children' do
+ get :children, id: group.to_param, format: :json
- expect(assigns(:nested_groups)).to contain_exactly(public_subgroup, private_subgroup)
+ expect(assigns(:children)).to contain_exactly(public_project)
+ end
end
+ end
- context 'being member of private subgroup' do
- it 'shows public and private subgroups the user is member of' do
- group_member.destroy!
- private_subgroup.add_guest(user)
+ context 'for subgroups', :nested_groups do
+ let!(:public_subgroup) { create(:group, :public, parent: group) }
+ let!(:private_subgroup) { create(:group, :private, parent: group) }
+ let!(:public_project) { create(:project, :public, namespace: group) }
+ let!(:private_project) { create(:project, :private, namespace: group) }
- get :subgroups, id: group.to_param
+ context 'as a user' do
+ before do
+ sign_in(user)
+ end
- expect(assigns(:nested_groups)).to contain_exactly(public_subgroup, private_subgroup)
+ it 'shows all children' do
+ get :children, id: group.to_param, format: :json
+
+ expect(assigns(:children)).to contain_exactly(public_subgroup, private_subgroup, public_project, private_project)
+ end
+
+ context 'being member of private subgroup' do
+ it 'shows public and private children the user is member of' do
+ group_member.destroy!
+ private_subgroup.add_guest(user)
+ private_project.add_guest(user)
+
+ get :children, id: group.to_param, format: :json
+
+ expect(assigns(:children)).to contain_exactly(public_subgroup, private_subgroup, public_project, private_project)
+ end
end
end
- end
- context 'as a guest' do
- it 'shows the public subgroups' do
- get :subgroups, id: group.to_param
+ context 'as a guest' do
+ it 'shows the public children' do
+ get :children, id: group.to_param, format: :json
- expect(assigns(:nested_groups)).to contain_exactly(public_subgroup)
+ expect(assigns(:children)).to contain_exactly(public_subgroup, public_project)
+ end
end
end
end