Add more tests for subgroups feature
* subgroup can be created by owner of the group * project can be created inside subgroup by owner of the group Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
fec40d78a7
commit
f51adf8c6e
2 changed files with 47 additions and 8 deletions
|
@ -86,6 +86,7 @@ feature 'Group', feature: true do
|
||||||
describe 'create a nested group' do
|
describe 'create a nested group' do
|
||||||
let(:group) { create(:group, path: 'foo') }
|
let(:group) { create(:group, path: 'foo') }
|
||||||
|
|
||||||
|
context 'as admin' do
|
||||||
before do
|
before do
|
||||||
visit subgroups_group_path(group)
|
visit subgroups_group_path(group)
|
||||||
click_link 'New Subgroup'
|
click_link 'New Subgroup'
|
||||||
|
@ -100,6 +101,28 @@ feature 'Group', feature: true do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'as group owner' do
|
||||||
|
let(:user) { create(:user) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
group.add_owner(user)
|
||||||
|
logout
|
||||||
|
login_as(user)
|
||||||
|
|
||||||
|
visit subgroups_group_path(group)
|
||||||
|
click_link 'New Subgroup'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'creates a nested group' do
|
||||||
|
fill_in 'Group path', with: 'bar'
|
||||||
|
click_button 'Create group'
|
||||||
|
|
||||||
|
expect(current_path).to eq(group_path('foo/bar'))
|
||||||
|
expect(page).to have_content("Group 'bar' was successfully created.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it 'checks permissions to avoid exposing groups by parent_id' do
|
it 'checks permissions to avoid exposing groups by parent_id' do
|
||||||
group = create(:group, :private, path: 'secret-group')
|
group = create(:group, :private, path: 'secret-group')
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,22 @@ feature "New project", feature: true do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "with subgroup namespace" do
|
||||||
|
let(:group) { create(:group, :private, owner: user) }
|
||||||
|
let(:subgroup) { create(:group, parent: group) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
group.add_master(user)
|
||||||
|
visit new_project_path(namespace_id: subgroup.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "selects the group namespace" do
|
||||||
|
namespace = find("#project_namespace_id option[selected]")
|
||||||
|
|
||||||
|
expect(namespace.text).to eq subgroup.full_path
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Import project options' do
|
context 'Import project options' do
|
||||||
|
|
Loading…
Reference in a new issue