diff options
Diffstat (limited to 'qa/qa/resource/snippet.rb')
-rw-r--r-- | qa/qa/resource/snippet.rb | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/qa/qa/resource/snippet.rb b/qa/qa/resource/snippet.rb index c4ea6447209..6fdcb1cd29b 100644 --- a/qa/qa/resource/snippet.rb +++ b/qa/qa/resource/snippet.rb @@ -3,7 +3,7 @@ module QA module Resource class Snippet < Base - attr_accessor :title, :description, :file_content, :visibility, :file_name + attr_accessor :title, :description, :file_content, :visibility, :file_name, :snippet_id def initialize @title = 'New snippet title' @@ -36,6 +36,36 @@ module QA new_page.click_create_snippet_button end end + + def fabricate_via_api! + resource_web_url(api_post) + rescue ResourceNotFoundError + super + end + + def api_get_path + "/snippets/#{snippet_id}" + end + + def api_post_path + '/snippets' + end + + def api_post_body + { + title: title, + description: description, + visibility: visibility.downcase, + files: all_file_contents + } + end + + def all_file_contents + @files.insert(0, { name: @file_name, content: @file_content }) + @files.each do |file| + file[:file_path] = file.delete(:name) + end + end end end end |