From 16a79150ee064ccaca349bdb22df24c2fb7374ac Mon Sep 17 00:00:00 2001 From: Rajendra Kadam <rajendrakadam249@gmail.com> Date: Tue, 4 Aug 2020 20:24:46 +0530 Subject: [PATCH] Fix SaveBang cop for spec in spec/features/merge_requests/* This MR fixes the Rails/SaveBang cop for spec files in spec/features/merge_requests/* It also adds a changelog for the mentioned change Add changelog for the cop fixes Use sidekiq inline in spec --- .rubocop_todo.yml | 8 -------- changelogs/unreleased/rails-save-bang-10.yml | 5 +++++ ...user_merges_when_pipeline_succeeds_spec.rb | 4 ++-- .../user_posts_diff_notes_spec.rb | 2 +- ...diff_notes_and_discussions_resolve_spec.rb | 2 +- .../user_sees_cherry_pick_modal_spec.rb | 2 +- .../user_sees_discussions_spec.rb | 4 ++-- .../user_sees_merge_widget_spec.rb | 20 +++++++++---------- .../merge_request/user_sees_versions_spec.rb | 8 ++++---- .../merge_requests/user_mass_updates_spec.rb | 2 +- 10 files changed, 27 insertions(+), 30 deletions(-) create mode 100644 changelogs/unreleased/rails-save-bang-10.yml diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 903dc5fdcd02c..7f77f69c267de 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1325,14 +1325,6 @@ Rails/SaveBang: - 'spec/features/issues/user_filters_issues_spec.rb' - 'spec/features/issues/user_sees_live_update_spec.rb' - 'spec/features/issues/user_sorts_issues_spec.rb' - - 'spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb' - - 'spec/features/merge_request/user_posts_diff_notes_spec.rb' - - 'spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb' - - 'spec/features/merge_request/user_sees_cherry_pick_modal_spec.rb' - - 'spec/features/merge_request/user_sees_discussions_spec.rb' - - 'spec/features/merge_request/user_sees_merge_widget_spec.rb' - - 'spec/features/merge_request/user_sees_versions_spec.rb' - - 'spec/features/merge_requests/user_mass_updates_spec.rb' - 'spec/features/profiles/emails_spec.rb' - 'spec/features/profiles/password_spec.rb' - 'spec/features/profiles/personal_access_tokens_spec.rb' diff --git a/changelogs/unreleased/rails-save-bang-10.yml b/changelogs/unreleased/rails-save-bang-10.yml new file mode 100644 index 0000000000000..8faf83ea94afa --- /dev/null +++ b/changelogs/unreleased/rails-save-bang-10.yml @@ -0,0 +1,5 @@ +--- +title: Refactor spec/features/merge_requests/* to fix Rails/SaveBang Cop +merge_request: 38591 +author: Rajendra Kadam +type: fixed diff --git a/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb b/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb index d5ff31de073a6..e61ae4ea795a3 100644 --- a/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb +++ b/spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb @@ -154,7 +154,7 @@ context 'view merge request with MWPS enabled but automatically merge fails' do before do - merge_request.update( + merge_request.update!( merge_user: merge_request.author, merge_error: 'Something went wrong.' ) @@ -173,7 +173,7 @@ context 'view merge request with MWPS enabled but automatically merge fails' do before do - merge_request.update( + merge_request.update!( merge_user: merge_request.author, merge_error: 'Something went wrong.' ) diff --git a/spec/features/merge_request/user_posts_diff_notes_spec.rb b/spec/features/merge_request/user_posts_diff_notes_spec.rb index 6ecffb0500977..9556142ecb86a 100644 --- a/spec/features/merge_request/user_posts_diff_notes_spec.rb +++ b/spec/features/merge_request/user_posts_diff_notes_spec.rb @@ -193,7 +193,7 @@ context 'when the MR only supports legacy diff notes' do before do - merge_request.merge_request_diff.update(start_commit_sha: nil) + merge_request.merge_request_diff.update!(start_commit_sha: nil) visit diffs_project_merge_request_path(project, merge_request, view: 'inline') end diff --git a/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb b/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb index aa3840b4376ad..f2adfd21e4914 100644 --- a/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb +++ b/spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb @@ -23,7 +23,7 @@ before do project.add_maintainer(user) sign_in(user) - note.destroy + note.destroy! visit_merge_request end diff --git a/spec/features/merge_request/user_sees_cherry_pick_modal_spec.rb b/spec/features/merge_request/user_sees_cherry_pick_modal_spec.rb index ec2fb856be503..7f4249336fed0 100644 --- a/spec/features/merge_request/user_sees_cherry_pick_modal_spec.rb +++ b/spec/features/merge_request/user_sees_cherry_pick_modal_spec.rb @@ -26,7 +26,7 @@ context 'without a merge commit' do before do merge_request.merge_commit_sha = nil - merge_request.save + merge_request.save! end it 'does not show a Cherry-pick button' do diff --git a/spec/features/merge_request/user_sees_discussions_spec.rb b/spec/features/merge_request/user_sees_discussions_spec.rb index ca8c4f8467762..74d1b8b628cdb 100644 --- a/spec/features/merge_request/user_sees_discussions_spec.rb +++ b/spec/features/merge_request/user_sees_discussions_spec.rb @@ -13,8 +13,8 @@ end describe "Diff discussions" do - let!(:old_merge_request_diff) { merge_request.merge_request_diffs.create(diff_refs: outdated_diff_refs) } - let!(:new_merge_request_diff) { merge_request.merge_request_diffs.create } + let!(:old_merge_request_diff) { merge_request.merge_request_diffs.create!(diff_refs: outdated_diff_refs) } + let!(:new_merge_request_diff) { merge_request.merge_request_diffs.create! } let!(:outdated_discussion) { create(:diff_note_on_merge_request, project: project, noteable: merge_request, position: outdated_position).to_discussion } let!(:active_discussion) { create(:diff_note_on_merge_request, noteable: merge_request, project: project).to_discussion } let(:outdated_position) do diff --git a/spec/features/merge_request/user_sees_merge_widget_spec.rb b/spec/features/merge_request/user_sees_merge_widget_spec.rb index ce49e9f414131..c7d26dfc8148f 100644 --- a/spec/features/merge_request/user_sees_merge_widget_spec.rb +++ b/spec/features/merge_request/user_sees_merge_widget_spec.rb @@ -302,7 +302,7 @@ context 'view merge request with MWPS enabled but automatically merge fails' do before do - merge_request.update( + merge_request.update!( auto_merge_enabled: true, auto_merge_strategy: AutoMergeService::STRATEGY_MERGE_WHEN_PIPELINE_SUCCEEDS, merge_user: merge_request.author, @@ -324,7 +324,7 @@ context 'view merge request with MWPS enabled but automatically merge fails' do before do - merge_request.update( + merge_request.update!( merge_when_pipeline_succeeds: true, merge_user: merge_request.author, merge_error: 'Something went wrong' @@ -345,9 +345,9 @@ context 'view merge request where fast-forward merge is not possible' do before do - project.update(merge_requests_ff_only_enabled: true) + project.update!(merge_requests_ff_only_enabled: true) - merge_request.update( + merge_request.update!( merge_user: merge_request.author, merge_status: :cannot_be_merged ) @@ -380,19 +380,19 @@ end end - context 'user can merge into source project but cannot push to fork', :js do - let(:fork_project) { create(:project, :public, :repository) } + context 'user can merge into target project but cannot push to fork', :js do + let(:forked_project) { fork_project(project, nil, repository: true) } let(:user2) { create(:user) } before do project.add_maintainer(user2) sign_out(:user) sign_in(user2) - merge_request.update(target_project: fork_project) + merge_request.update!(source_project: forked_project) visit project_merge_request_path(project, merge_request) end - it 'user can merge into the source project' do + it 'user can merge into the target project', :sidekiq_inline do expect(page).to have_button('Merge', disabled: false) end @@ -409,7 +409,7 @@ project.add_developer(user2) sign_out(:user) sign_in(user2) - merge_request.update( + merge_request.update!( source_project: forked_project, target_project: project, merge_params: { 'force_remove_source_branch' => '1' } @@ -879,7 +879,7 @@ def comparer let!(:pipeline) { create(:ci_pipeline, status: 'success', sha: sha, project: project, ref: merge_request.source_branch) } before do - project.update( + project.update!( visibility_level: Gitlab::VisibilityLevel::PUBLIC, public_builds: false ) diff --git a/spec/features/merge_request/user_sees_versions_spec.rb b/spec/features/merge_request/user_sees_versions_spec.rb index 75319c8a22d71..a89ae5c746480 100644 --- a/spec/features/merge_request/user_sees_versions_spec.rb +++ b/spec/features/merge_request/user_sees_versions_spec.rb @@ -5,14 +5,14 @@ RSpec.describe 'Merge request > User sees versions', :js do let(:merge_request) do create(:merge_request).tap do |mr| - mr.merge_request_diff.destroy + mr.merge_request_diff.destroy! end end let(:project) { merge_request.source_project } let(:user) { project.creator } - let!(:merge_request_diff1) { merge_request.merge_request_diffs.create(head_commit_sha: '6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9') } - let!(:merge_request_diff2) { merge_request.merge_request_diffs.create(head_commit_sha: nil) } - let!(:merge_request_diff3) { merge_request.merge_request_diffs.create(head_commit_sha: '5937ac0a7beb003549fc5fd26fc247adbce4a52e') } + let!(:merge_request_diff1) { merge_request.merge_request_diffs.create!(head_commit_sha: '6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9') } + let!(:merge_request_diff2) { merge_request.merge_request_diffs.create!(head_commit_sha: nil) } + let!(:merge_request_diff3) { merge_request.merge_request_diffs.create!(head_commit_sha: '5937ac0a7beb003549fc5fd26fc247adbce4a52e') } let!(:params) { {} } before do diff --git a/spec/features/merge_requests/user_mass_updates_spec.rb b/spec/features/merge_requests/user_mass_updates_spec.rb index 589825f12af69..179bf84a7293d 100644 --- a/spec/features/merge_requests/user_mass_updates_spec.rb +++ b/spec/features/merge_requests/user_mass_updates_spec.rb @@ -95,7 +95,7 @@ describe 'unset milestone' do before do merge_request.milestone = milestone - merge_request.save + merge_request.save! visit project_merge_requests_path(project) end -- GitLab