Merge branch 'qa-fix-protected-branches-test-ce' into 'master'
CE: Fix QA protected branches tests See merge request gitlab-org/gitlab-ce!18585
This commit is contained in:
commit
3ade2b6c43
5 changed files with 52 additions and 9 deletions
|
@ -1,8 +1,8 @@
|
|||
- content_for :merge_access_levels do
|
||||
.merge_access_levels-container
|
||||
= dropdown_tag('Select',
|
||||
options: { toggle_class: 'js-allowed-to-merge wide',
|
||||
dropdown_class: 'dropdown-menu-selectable capitalize-header',
|
||||
options: { toggle_class: 'js-allowed-to-merge qa-allowed-to-merge-select wide',
|
||||
dropdown_class: 'dropdown-menu-selectable qa-allowed-to-merge-dropdown capitalize-header',
|
||||
data: { field_name: 'protected_branch[merge_access_levels_attributes][0][access_level]', input_id: 'merge_access_levels_attributes' }})
|
||||
- content_for :push_access_levels do
|
||||
.push_access_levels-container
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
%td
|
||||
= hidden_field_tag "allowed_to_merge_#{protected_branch.id}", protected_branch.merge_access_levels.first.access_level
|
||||
= dropdown_tag( (protected_branch.merge_access_levels.first.humanize || 'Select') ,
|
||||
options: { toggle_class: 'js-allowed-to-merge', dropdown_class: 'dropdown-menu-selectable js-allowed-to-merge-container capitalize-header',
|
||||
options: { toggle_class: 'js-allowed-to-merge qa-allowed-to-merge', dropdown_class: 'dropdown-menu-selectable js-allowed-to-merge-container capitalize-header',
|
||||
data: { field_name: "allowed_to_merge_#{protected_branch.id}", access_level_id: protected_branch.merge_access_levels.first.id }})
|
||||
%td
|
||||
= hidden_field_tag "allowed_to_push_#{protected_branch.id}", protected_branch.push_access_levels.first.access_level
|
||||
|
|
|
@ -2,7 +2,8 @@ module QA
|
|||
module Factory
|
||||
module Resource
|
||||
class Branch < Factory::Base
|
||||
attr_accessor :project, :branch_name, :allow_to_push, :protected
|
||||
attr_accessor :project, :branch_name,
|
||||
:allow_to_push, :allow_to_merge, :protected
|
||||
|
||||
dependency Factory::Resource::Project, as: :project do |project|
|
||||
project.name = 'protected-branch-project'
|
||||
|
@ -23,6 +24,7 @@ module QA
|
|||
def initialize
|
||||
@branch_name = 'test/branch'
|
||||
@allow_to_push = true
|
||||
@allow_to_merge = true
|
||||
@protected = false
|
||||
end
|
||||
|
||||
|
@ -65,7 +67,22 @@ module QA
|
|||
page.allow_no_one_to_push
|
||||
end
|
||||
|
||||
if allow_to_merge
|
||||
page.allow_devs_and_masters_to_merge
|
||||
else
|
||||
page.allow_no_one_to_merge
|
||||
end
|
||||
|
||||
page.wait(reload: false) do
|
||||
!page.first('.btn-create').disabled?
|
||||
end
|
||||
|
||||
page.protect_branch
|
||||
|
||||
# Wait for page load, which resets the expanded sections
|
||||
page.wait(reload: false) do
|
||||
!page.has_content?('Collapse')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -11,6 +11,13 @@ module QA
|
|||
view 'app/views/projects/protected_branches/_create_protected_branch.html.haml' do
|
||||
element :allowed_to_push_select
|
||||
element :allowed_to_push_dropdown
|
||||
element :allowed_to_merge_select
|
||||
element :allowed_to_merge_dropdown
|
||||
end
|
||||
|
||||
view 'app/views/projects/protected_branches/_update_protected_branch.html.haml' do
|
||||
element :allowed_to_push
|
||||
element :allowed_to_merge
|
||||
end
|
||||
|
||||
view 'app/views/projects/protected_branches/shared/_branches_list.html.haml' do
|
||||
|
@ -30,11 +37,19 @@ module QA
|
|||
end
|
||||
|
||||
def allow_no_one_to_push
|
||||
allow_to_push('No one')
|
||||
click_allow(:push, 'No one')
|
||||
end
|
||||
|
||||
def allow_devs_and_masters_to_push
|
||||
allow_to_push('Developers + Masters')
|
||||
click_allow(:push, 'Developers + Masters')
|
||||
end
|
||||
|
||||
def allow_no_one_to_merge
|
||||
click_allow(:merge, 'No one')
|
||||
end
|
||||
|
||||
def allow_devs_and_masters_to_merge
|
||||
click_allow(:merge, 'Developers + Masters')
|
||||
end
|
||||
|
||||
def protect_branch
|
||||
|
@ -55,11 +70,15 @@ module QA
|
|||
|
||||
private
|
||||
|
||||
def allow_to_push(text)
|
||||
click_element :allowed_to_push_select
|
||||
def click_allow(action, text)
|
||||
click_element :"allowed_to_#{action}_select"
|
||||
|
||||
within_element(:allowed_to_push_dropdown) do
|
||||
within_element(:"allowed_to_#{action}_dropdown") do
|
||||
click_on text
|
||||
|
||||
wait(reload: false) do
|
||||
has_css?('.is-active')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,6 +19,13 @@ module QA
|
|||
Page::Main::Login.act { sign_in_using_credentials }
|
||||
end
|
||||
|
||||
after do
|
||||
# We need to clear localStorage because we're using it for the dropdown,
|
||||
# and capybara doesn't do this for us.
|
||||
# https://github.com/teamcapybara/capybara/issues/1702
|
||||
Capybara.execute_script 'localStorage.clear()'
|
||||
end
|
||||
|
||||
scenario 'user is able to protect a branch' do
|
||||
protected_branch = Factory::Resource::Branch.fabricate! do |resource|
|
||||
resource.branch_name = branch_name
|
||||
|
|
Loading…
Reference in a new issue