From 6f57c0afbf50199057965aa8565f948e6bba6366 Mon Sep 17 00:00:00 2001 From: Anastasia McDonald <amcdonald@gitlab.com> Date: Thu, 15 Oct 2020 04:25:06 +0000 Subject: [PATCH] Add E2E to create project snippet with multiple files See https://gitlab.com/gitlab-org/quality/testcases/-/issues/1024 --- qa/qa/resource/project_snippet.rb | 7 +++ ...roject_snippet_with_multiple_files_spec.rb | 50 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb diff --git a/qa/qa/resource/project_snippet.rb b/qa/qa/resource/project_snippet.rb index ce4be6445f10a..6fa38baaa916c 100644 --- a/qa/qa/resource/project_snippet.rb +++ b/qa/qa/resource/project_snippet.rb @@ -21,6 +21,13 @@ def fabricate! new_snippet.set_visibility(@visibility) new_snippet.fill_file_name(@file_name) new_snippet.fill_file_content(@file_content) + + @files.each.with_index(2) do |file, i| + new_snippet.click_add_file + new_snippet.fill_file_name(file[:name], i) + new_snippet.fill_file_content(file[:content], i) + end + new_snippet.click_create_snippet_button end end diff --git a/qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb b/qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb new file mode 100644 index 0000000000000..7b4ec573f5340 --- /dev/null +++ b/qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +module QA + RSpec.describe 'Create' do + describe 'Multiple file snippet' do + it 'creates a project snippet with multiple files', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1024' do + Flow::Login.sign_in + + Resource::ProjectSnippet.fabricate_via_browser_ui! do |snippet| + snippet.title = 'Project snippet with multiple files' + snippet.description = 'Snippet description' + snippet.visibility = 'Private' + snippet.file_name = '01 file name' + snippet.file_content = '1 file content' + + # Ten is the limit of files you can have under one snippet at the moment + snippet.add_files do |files| + (2..10).each do |i| + files.append(name: file_name(i), content: file_content(i)) + end + end + end + + Page::Dashboard::Snippet::Show.perform do |snippet| + aggregate_failures 'file content verification' do + expect(snippet).to have_snippet_title('Project snippet with multiple files') + expect(snippet).to have_snippet_description('Snippet description') + expect(snippet).to have_visibility_type(/private/i) + + (1..10).each do |i| + expect(snippet).to have_file_name(file_name(i), i) + expect(snippet).to have_file_content(file_content(i), i) + end + end + end + end + + # Currently the files are returned in alphabetical order and not in the order they are created. + # However, it might soon change - see https://gitlab.com/gitlab-org/gitlab/-/issues/250836. + # By using a leading "0" we make sure the test works with either implementation. + def file_name(index) + "#{index.to_s.rjust(2, '0')} file name" + end + + def file_content(index) + "#{index} file content" + end + end + end +end -- GitLab