Merge branch 'replace_group_links.feature' into 'master'
Replace 'project/group_links.feature' spinach test with an rspec analog See merge request !14169
This commit is contained in:
commit
668e1f4c4c
4 changed files with 46 additions and 67 deletions
5
changelogs/unreleased/replace_group_links-feature.yml
Normal file
5
changelogs/unreleased/replace_group_links-feature.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Replace project/group_links.feature spinach test with an rspec analog
|
||||
merge_request: 14169
|
||||
author: Vitaliy @blackst0ne Klachkov
|
||||
type: other
|
|
@ -1,16 +0,0 @@
|
|||
Feature: Project Group Links
|
||||
Background:
|
||||
Given I sign in as a user
|
||||
And I own project "Shop"
|
||||
And project "Shop" is shared with group "Ops"
|
||||
And project "Shop" is not shared with group "Market"
|
||||
And I visit project group links page
|
||||
|
||||
Scenario: I should see list of groups
|
||||
Then I should see project already shared with group "Ops"
|
||||
Then I should see project is not shared with group "Market"
|
||||
|
||||
@javascript
|
||||
Scenario: I share project with group
|
||||
When I select group "Market" for share
|
||||
Then I should see project is shared with group "Market"
|
|
@ -1,51 +0,0 @@
|
|||
class Spinach::Features::ProjectGroupLinks < Spinach::FeatureSteps
|
||||
include SharedAuthentication
|
||||
include SharedProject
|
||||
include SharedPaths
|
||||
include Select2Helper
|
||||
|
||||
step 'I should see project already shared with group "Ops"' do
|
||||
page.within '.project-members-groups' do
|
||||
expect(page).to have_content "Ops"
|
||||
end
|
||||
end
|
||||
|
||||
step 'I should see project is not shared with group "Market"' do
|
||||
page.within '.project-members-groups' do
|
||||
expect(page).not_to have_content "Market"
|
||||
end
|
||||
end
|
||||
|
||||
step 'I select group "Market" for share' do
|
||||
click_link 'Share with group'
|
||||
group = Group.find_by(path: 'market')
|
||||
select2(group.id, from: "#link_group_id")
|
||||
select "Master", from: 'link_group_access'
|
||||
click_button "Share"
|
||||
end
|
||||
|
||||
step 'I should see project is shared with group "Market"' do
|
||||
page.within '.project-members-groups' do
|
||||
expect(page).to have_content "Market"
|
||||
end
|
||||
end
|
||||
|
||||
step 'project "Shop" is shared with group "Ops"' do
|
||||
group = create(:group, name: 'Ops')
|
||||
share_link = project.project_group_links.new(group_access: Gitlab::Access::MASTER)
|
||||
share_link.group_id = group.id
|
||||
share_link.save!
|
||||
end
|
||||
|
||||
step 'project "Shop" is not shared with group "Market"' do
|
||||
create(:group, name: 'Market', path: 'market')
|
||||
end
|
||||
|
||||
step 'I visit project group links page' do
|
||||
visit project_group_links_path(project)
|
||||
end
|
||||
|
||||
def project
|
||||
@project ||= Project.find_by_name "Shop"
|
||||
end
|
||||
end
|
|
@ -0,0 +1,41 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'User manages group links' do
|
||||
include Select2Helper
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, namespace: user.namespace) }
|
||||
let(:group_ops) { create(:group, name: 'Ops') }
|
||||
let(:group_market) { create(:group, name: 'Market', path: 'market') }
|
||||
|
||||
before do
|
||||
project.add_master(user)
|
||||
sign_in(user)
|
||||
|
||||
share_link = project.project_group_links.new(group_access: Gitlab::Access::MASTER)
|
||||
share_link.group_id = group_ops.id
|
||||
share_link.save!
|
||||
|
||||
visit(project_group_links_path(project))
|
||||
end
|
||||
|
||||
it 'shows a list of groups' do
|
||||
page.within('.project-members-groups') do
|
||||
expect(page).to have_content('Ops')
|
||||
expect(page).not_to have_content('Market')
|
||||
end
|
||||
end
|
||||
|
||||
it 'shares a project with a group', :js do
|
||||
click_link('Share with group')
|
||||
|
||||
select2(group_market.id, from: '#link_group_id')
|
||||
select('Master', from: 'link_group_access')
|
||||
|
||||
click_button('Share')
|
||||
|
||||
page.within('.project-members-groups') do
|
||||
expect(page).to have_content('Market')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue