diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-01-28 03:09:33 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-01-28 03:09:33 +0300 |
commit | 31aa5407f8ebffd4cf8f4c31e1133e310dc0a30f (patch) | |
tree | 0413bc08412d4bc93ee07da5781b9c9e2bd4b559 /qa | |
parent | 10eb15fe07b89755e82dbe2798651795aebd6614 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'qa')
-rw-r--r-- | qa/qa/page/merge_request/show.rb | 27 | ||||
-rw-r--r-- | qa/qa/specs/features/browser_ui/3_create/transient/apply_suggestion_spec.rb | 61 |
2 files changed, 88 insertions, 0 deletions
diff --git a/qa/qa/page/merge_request/show.rb b/qa/qa/page/merge_request/show.rb index ff8b21a09e8..0b56f1d1bb6 100644 --- a/qa/qa/page/merge_request/show.rb +++ b/qa/qa/page/merge_request/show.rb @@ -90,6 +90,15 @@ module QA element :review_preview_toggle end + view 'app/assets/javascripts/vue_shared/components/markdown/suggestion_diff_header.vue' do + element :apply_suggestions_batch_button + element :add_suggestion_batch_button + end + + view 'app/assets/javascripts/vue_shared/components/markdown/header.vue' do + element :suggestion_button + end + def start_review click_element(:start_review_button) @@ -306,6 +315,24 @@ module QA click_element(:edit_in_ide_button) end end + + def add_suggestion_to_diff(suggestion, line) + find("a[data-linenumber='#{line}']").hover + click_element(:diff_comment) + click_element(:suggestion_button) + initial_content = find_element(:reply_field).value + fill_element(:reply_field, '') + fill_element(:reply_field, initial_content.gsub(/(```suggestion:-0\+0\n).*(\n```)/, "\\1#{suggestion}\\2")) + click_element(:comment_now_button) + end + + def add_suggestion_to_batch + all_elements(:add_suggestion_batch_button, minimum: 1).first.click + end + + def apply_suggestions_batch + all_elements(:apply_suggestions_batch_button, minimum: 1).first.click + end end end end diff --git a/qa/qa/specs/features/browser_ui/3_create/transient/apply_suggestion_spec.rb b/qa/qa/specs/features/browser_ui/3_create/transient/apply_suggestion_spec.rb new file mode 100644 index 00000000000..eab2729af83 --- /dev/null +++ b/qa/qa/specs/features/browser_ui/3_create/transient/apply_suggestion_spec.rb @@ -0,0 +1,61 @@ +# frozen_string_literal: true + +module QA + RSpec.describe 'Create' do + context 'Transient tests', :transient do + let(:project) do + Resource::Project.fabricate_via_api! do |project| + project.name = 'project-for-transient-test' + end + end + + let(:code_for_merge) do + Pathname + .new(__dir__) + .join('../../../../../fixtures/metrics_dashboards/templating.yml') + end + + let(:merge_request) do + Resource::MergeRequest.fabricate_via_api! do |merge_request| + merge_request.project = project + merge_request.title = 'Transient MR' + merge_request.description = 'detecting transient bugs' + merge_request.file_content = File.read(code_for_merge) + end + end + + let(:dev_user) do + Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1) + end + + before do + project.add_member(dev_user) + Flow::Login.sign_in(as: dev_user, skip_page_validation: true) + + merge_request.visit! + + Page::MergeRequest::Show.perform(&:click_diffs_tab) + + [4, 6, 10, 13].each do |line_number| + Page::MergeRequest::Show.perform do |merge_request| + merge_request.add_suggestion_to_diff("This is the #{line_number} suggestion!", line_number) + end + end + + Flow::Login.sign_in + + merge_request.visit! + end + + it 'applies multiple suggestions', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1177' do + Page::MergeRequest::Show.perform do |merge_request| + merge_request.click_diffs_tab + 4.times { merge_request.add_suggestion_to_batch } + merge_request.apply_suggestions_batch + + expect(merge_request).to have_css('.badge-success', text: "Applied", count: 4) + end + end + end + end +end |