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/features/groups_spec.rb')
-rw-r--r--spec/features/groups_spec.rb54
1 files changed, 42 insertions, 12 deletions
diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb
index b9fd3a1a5cc..c9a0844932a 100644
--- a/spec/features/groups_spec.rb
+++ b/spec/features/groups_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Group' do
- let(:user) { create(:admin) }
+ let_it_be(:user) { create(:user) }
before do
sign_in(user)
@@ -21,8 +21,6 @@ RSpec.describe 'Group' do
end
describe 'as a non-admin' do
- let(:user) { create(:user) }
-
it 'creates a group and persists visibility radio selection', :js do
stub_application_setting(default_group_visibility: :private)
@@ -38,6 +36,15 @@ RSpec.describe 'Group' do
end
end
+ describe 'with expected fields' do
+ it 'renders from as expected', :aggregate_failures do
+ expect(page).to have_field('name')
+ expect(page).to have_field('group_path')
+ expect(page).to have_field('group_visibility_level_0')
+ expect(page).not_to have_field('description')
+ end
+ end
+
describe 'with space in group path' do
it 'renders new group form with validation errors' do
fill_in 'Group URL', with: 'space group'
@@ -137,9 +144,11 @@ RSpec.describe 'Group' do
end
describe 'create a nested group', :js do
- let(:group) { create(:group, path: 'foo') }
+ let_it_be(:group) { create(:group, path: 'foo') }
context 'as admin' do
+ let(:user) { create(:admin) }
+
before do
visit new_group_path(group, parent_id: group.id)
end
@@ -185,11 +194,13 @@ RSpec.describe 'Group' do
end
describe 'group edit', :js do
- let(:group) { create(:group, :public) }
- let(:path) { edit_group_path(group) }
+ let_it_be(:group) { create(:group, :public) }
+ let(:path) { edit_group_path(group) }
let(:new_name) { 'new-name' }
before do
+ group.add_owner(user)
+
visit path
end
@@ -200,6 +211,8 @@ RSpec.describe 'Group' do
it 'saves new settings' do
page.within('.gs-general') do
+ # Have to reset it to '' so it overwrites rather than appends
+ fill_in('group_name', with: '')
fill_in 'group_name', with: new_name
click_button 'Save changes'
end
@@ -226,8 +239,12 @@ RSpec.describe 'Group' do
end
describe 'group page with markdown description' do
- let(:group) { create(:group) }
- let(:path) { group_path(group) }
+ let_it_be(:group) { create(:group) }
+ let(:path) { group_path(group) }
+
+ before do
+ group.add_owner(user)
+ end
it 'parses Markdown' do
group.update_attribute(:description, 'This is **my** group')
@@ -263,9 +280,13 @@ RSpec.describe 'Group' do
end
describe 'group page with nested groups', :js do
- let!(:group) { create(:group) }
- let!(:nested_group) { create(:group, parent: group) }
- let!(:project) { create(:project, namespace: group) }
+ let_it_be(:group) { create(:group) }
+ let_it_be(:nested_group) { create(:group, parent: group) }
+ let_it_be(:project) { create(:project, namespace: group) }
+
+ before do
+ group.add_owner(user)
+ end
it 'renders projects and groups on the page' do
visit group_path(group)
@@ -292,7 +313,15 @@ RSpec.describe 'Group' do
end
describe 'new subgroup / project button' do
- let(:group) { create(:group, project_creation_level: Gitlab::Access::NO_ONE_PROJECT_ACCESS, subgroup_creation_level: Gitlab::Access::OWNER_SUBGROUP_ACCESS) }
+ let_it_be(:group, reload: true) do
+ create(:group,
+ project_creation_level: Gitlab::Access::NO_ONE_PROJECT_ACCESS,
+ subgroup_creation_level: Gitlab::Access::OWNER_SUBGROUP_ACCESS)
+ end
+
+ before do
+ group.add_owner(user)
+ end
context 'when user has subgroup creation permissions but not project creation permissions' do
it 'only displays "New subgroup" button' do
@@ -325,6 +354,7 @@ RSpec.describe 'Group' do
context 'when user has project and subgroup creation permissions' do
it 'displays "New subgroup" and "New project" buttons' do
group.update!(project_creation_level: Gitlab::Access::MAINTAINER_PROJECT_ACCESS)
+
visit group_path(group)
page.within '[data-testid="group-buttons"]' do