diff options
Diffstat (limited to 'qa/qa/resource/ci_variable.rb')
-rw-r--r-- | qa/qa/resource/ci_variable.rb | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/qa/qa/resource/ci_variable.rb b/qa/qa/resource/ci_variable.rb index 0570c47d41c..b178a64b72d 100644 --- a/qa/qa/resource/ci_variable.rb +++ b/qa/qa/resource/ci_variable.rb @@ -3,7 +3,7 @@ module QA module Resource class CiVariable < Base - attr_accessor :key, :value + attr_accessor :key, :value, :masked attribute :project do Project.fabricate! do |resource| @@ -15,16 +15,44 @@ module QA def fabricate! project.visit! - Page::Project::Menu.perform(&:click_ci_cd_settings) + Page::Project::Menu.perform(&:go_to_ci_cd_settings) 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 end end + + def fabricate_via_api! + resource_web_url(api_get) + rescue ResourceNotFoundError + super + end + + def resource_web_url(resource) + super + rescue ResourceURLMissingError + # this particular resource does not expose a web_url property + end + + def api_get_path + "/projects/#{project.id}/variables/#{key}" + end + + def api_post_path + "/projects/#{project.id}/variables" + end + + def api_post_body + { + key: key, + value: value, + masked: masked + } + end end end end |