diff options
author | Thong Kuah <tkuah@gitlab.com> | 2019-05-27 11:54:16 +1200 |
---|---|---|
committer | Thong Kuah <tkuah@gitlab.com> | 2019-05-27 11:54:16 +1200 |
commit | 33132427b3d4a14975b948fb15e22bc8a376dda2 (patch) | |
tree | 4b1ac1f4a17f52866cc8080cf878f79ce3e39f52 /qa | |
parent | bd0aae21a5709a3d2557b5ac85a2a56ec0e4e681 (diff) | |
download | gitlab-ce-33132427b3d4a14975b948fb15e22bc8a376dda2.tar.gz |
Add support for toggling masked on UIexplicit_masked_qa
In addition to API, add support for toggling mased on UI too.
(Though fabricate_via_browser_ui is private)
Diffstat (limited to 'qa')
-rw-r--r-- | qa/qa/page/project/settings/ci_variables.rb | 24 | ||||
-rw-r--r-- | qa/qa/resource/ci_variable.rb | 2 |
2 files changed, 24 insertions, 2 deletions
diff --git a/qa/qa/page/project/settings/ci_variables.rb b/qa/qa/page/project/settings/ci_variables.rb index 567fe6f83c8..3621e618bf2 100644 --- a/qa/qa/page/project/settings/ci_variables.rb +++ b/qa/qa/page/project/settings/ci_variables.rb @@ -11,6 +11,7 @@ module QA element :variable_row, '.ci-variable-row-body' # rubocop:disable QA/ElementWithPattern element :variable_key, '.qa-ci-variable-input-key' # rubocop:disable QA/ElementWithPattern element :variable_value, '.qa-ci-variable-input-value' # rubocop:disable QA/ElementWithPattern + element :variable_masked end view 'app/views/ci/variables/_index.html.haml' do @@ -18,7 +19,7 @@ module QA element :reveal_values, '.js-secret-value-reveal-button' # rubocop:disable QA/ElementWithPattern end - def fill_variable(key, value) + def fill_variable(key, value, masked) keys = all_elements(:ci_variable_input_key) index = keys.size - 1 @@ -32,6 +33,9 @@ module QA # The code was inspired from: # https://github.com/teamcapybara/capybara/blob/679548cea10773d45e32808f4d964377cfe5e892/lib/capybara/selenium/node.rb#L217 execute_script("arguments[0].value = #{value.to_json}", node) + + masked_node = all_elements(:variable_masked)[index] + toggle_masked(masked_node, masked) end def save_variables @@ -47,6 +51,24 @@ module QA find('.qa-ci-variable-input-value').value end end + + private + + def toggle_masked(masked_node, masked) + wait(reload: false) do + masked_node.click + + masked ? masked_enabled?(masked_node) : masked_disabled?(masked_node) + end + end + + def masked_enabled?(masked_node) + masked_node[:class].include?('is-checked') + end + + def masked_disabled?(masked_node) + !masked_enabled?(masked_node) + end end end end diff --git a/qa/qa/resource/ci_variable.rb b/qa/qa/resource/ci_variable.rb index dc9af14d83e..b178a64b72d 100644 --- a/qa/qa/resource/ci_variable.rb +++ b/qa/qa/resource/ci_variable.rb @@ -19,7 +19,7 @@ module QA Page::Project::Settings::CICD.perform do |setting| setting.expand_ci_variables do |page| - page.fill_variable(key, value) + page.fill_variable(key, value, masked) page.save_variables end |