From 67db38fc01aeefe8ebce455c223d0292bd5d2ce4 Mon Sep 17 00:00:00 2001 From: Siddharth Asthana <siddharthasthana31@gmail.com> Date: Sat, 4 Dec 2021 00:17:25 +0530 Subject: [PATCH] Fix Rails/SaveBang offenses Changelog: other EE: true --- .rubocop_todo/rails/save_bang.yml | 7 ---- ee/spec/models/application_setting_spec.rb | 4 +- .../approval_merge_request_rule_spec.rb | 6 +-- ee/spec/models/approval_project_rule_spec.rb | 10 ++--- ee/spec/models/burndown_spec.rb | 6 +-- .../elasticsearch_indexed_namespace_spec.rb | 2 +- ee/spec/models/gitlab_subscription_spec.rb | 2 +- ee/spec/models/issue_spec.rb | 42 +++++++++---------- 8 files changed, 36 insertions(+), 43 deletions(-) diff --git a/.rubocop_todo/rails/save_bang.yml b/.rubocop_todo/rails/save_bang.yml index 807f2d6485d3f..15361fd674359 100644 --- a/.rubocop_todo/rails/save_bang.yml +++ b/.rubocop_todo/rails/save_bang.yml @@ -2,13 +2,6 @@ Rails/SaveBang: Exclude: - ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb - - ee/spec/models/application_setting_spec.rb - - ee/spec/models/approval_merge_request_rule_spec.rb - - ee/spec/models/approval_project_rule_spec.rb - - ee/spec/models/burndown_spec.rb - - ee/spec/models/elasticsearch_indexed_namespace_spec.rb - - ee/spec/models/gitlab_subscription_spec.rb - - ee/spec/models/issue_spec.rb - ee/spec/models/protected_environment_spec.rb - ee/spec/models/repository_spec.rb - ee/spec/models/scim_identity_spec.rb diff --git a/ee/spec/models/application_setting_spec.rb b/ee/spec/models/application_setting_spec.rb index fdaa06bffef2b..eca17d7d95338 100644 --- a/ee/spec/models/application_setting_spec.rb +++ b/ee/spec/models/application_setting_spec.rb @@ -755,7 +755,7 @@ def expect_is_es_licensed it "doesn't call the update lifetime service" do expect(::PersonalAccessTokens::Instance::UpdateLifetimeService).not_to receive(:new) - setting.save + setting.save! end end @@ -770,7 +770,7 @@ def expect_is_es_licensed expect(service).to receive(:execute) end - setting.save + setting.save! end end end diff --git a/ee/spec/models/approval_merge_request_rule_spec.rb b/ee/spec/models/approval_merge_request_rule_spec.rb index 9aefffa4d200d..cd625b2c0968d 100644 --- a/ee/spec/models/approval_merge_request_rule_spec.rb +++ b/ee/spec/models/approval_merge_request_rule_spec.rb @@ -78,7 +78,7 @@ expect(rule).not_to be_valid expect(rule.errors.messages).to eq(rule_type: ['any-approver for the merge request already exists']) - expect { rule.save(validate: false) }.to raise_error(ActiveRecord::RecordNotUnique) + expect { rule.save!(validate: false) }.to raise_error(ActiveRecord::RecordNotUnique) end end end @@ -264,7 +264,7 @@ context 'when project merge_requests_author_approval is true' do it 'contains author' do - merge_request.project.update(merge_requests_author_approval: true) + merge_request.project.update!(merge_requests_author_approval: true) expect(subject.approvers).to contain_exactly(merge_request.author) end @@ -272,7 +272,7 @@ context 'when project merge_requests_author_approval is false' do before do - merge_request.project.update(merge_requests_author_approval: false) + merge_request.project.update!(merge_requests_author_approval: false) end it 'does not contain author' do diff --git a/ee/spec/models/approval_project_rule_spec.rb b/ee/spec/models/approval_project_rule_spec.rb index d759b54cbe10b..c034a232ca630 100644 --- a/ee/spec/models/approval_project_rule_spec.rb +++ b/ee/spec/models/approval_project_rule_spec.rb @@ -233,7 +233,7 @@ expect(rule).not_to be_valid expect(rule.errors.messages).to eq(rule_type: ['any-approver for the project already exists']) - expect { rule.save(validate: false) }.to raise_error(ActiveRecord::RecordNotUnique) + expect { rule.save!(validate: false) }.to raise_error(ActiveRecord::RecordNotUnique) end end @@ -273,28 +273,28 @@ end describe '#audit_add users after :add' do - let(:action!) { rule.update(users: [user, new_user]) } + let(:action!) { rule.update!(users: [user, new_user]) } let(:message) { 'Added User Spiderman to approval group on Vulnerability rule' } it_behaves_like 'auditable' end describe '#audit_remove users after :remove' do - let(:action!) { rule.update(users: []) } + let(:action!) { rule.update!(users: []) } let(:message) { 'Removed User Batman from approval group on Vulnerability rule' } it_behaves_like 'auditable' end describe '#audit_add groups after :add' do - let(:action!) { rule.update(groups: [group, new_group]) } + let(:action!) { rule.update!(groups: [group, new_group]) } let(:message) { 'Added Group Avengers to approval group on Vulnerability rule' } it_behaves_like 'auditable' end describe '#audit_remove groups after :remove' do - let(:action!) { rule.update(groups: []) } + let(:action!) { rule.update!(groups: []) } let(:message) { 'Removed Group Justice League from approval group on Vulnerability rule' } it_behaves_like 'auditable' diff --git a/ee/spec/models/burndown_spec.rb b/ee/spec/models/burndown_spec.rb index d9eeda83958de..de18c9ec7af6a 100644 --- a/ee/spec/models/burndown_spec.rb +++ b/ee/spec/models/burndown_spec.rb @@ -39,7 +39,7 @@ let_it_be(:non_member) { create(:user) } subject do - project.update(visibility_level: Gitlab::VisibilityLevel::PUBLIC) + project.update!(visibility_level: Gitlab::VisibilityLevel::PUBLIC) described_class.new(milestone.issues_visible_to_user(non_member), milestone.start_date, milestone.due_date).as_json.each { |event| event[:created_at] = event[:created_at].to_date } end @@ -57,13 +57,13 @@ end it "returns empty array if milestone start date is nil" do - milestone.update(start_date: nil) + milestone.update!(start_date: nil) expect(subject).to eq([]) end it "returns empty array if milestone due date is nil" do - milestone.update(due_date: nil) + milestone.update!(due_date: nil) expect(subject).to eq([]) end diff --git a/ee/spec/models/elasticsearch_indexed_namespace_spec.rb b/ee/spec/models/elasticsearch_indexed_namespace_spec.rb index 08be17961c611..a127669d59ef3 100644 --- a/ee/spec/models/elasticsearch_indexed_namespace_spec.rb +++ b/ee/spec/models/elasticsearch_indexed_namespace_spec.rb @@ -37,7 +37,7 @@ context 'with plans' do Plan::PAID_HOSTED_PLANS.each do |plan| plan_factory = "#{plan}_plan" - let_it_be(plan_factory) { create(plan_factory) } + let_it_be(plan_factory) { create(plan_factory) } # rubocop:disable Rails/SaveBang end let_it_be(:namespaces) { create_list(:namespace, 3) } diff --git a/ee/spec/models/gitlab_subscription_spec.rb b/ee/spec/models/gitlab_subscription_spec.rb index c425e4491446b..609f57fe41fa0 100644 --- a/ee/spec/models/gitlab_subscription_spec.rb +++ b/ee/spec/models/gitlab_subscription_spec.rb @@ -6,7 +6,7 @@ using RSpec::Parameterized::TableSyntax %i[free_plan bronze_plan premium_plan ultimate_plan].each do |plan| - let_it_be(plan) { create(plan) } + let_it_be(plan) { create(plan) } # rubocop:disable Rails/SaveBang end describe 'default values', :freeze_time do diff --git a/ee/spec/models/issue_spec.rb b/ee/spec/models/issue_spec.rb index 3a397984f871f..ff6e55f47538c 100644 --- a/ee/spec/models/issue_spec.rb +++ b/ee/spec/models/issue_spec.rb @@ -546,7 +546,7 @@ award_emoji = create(:award_emoji, :upvote, awardable: issue) - award_emoji.destroy + award_emoji.destroy! end end end @@ -620,7 +620,7 @@ end it 'positions issues even when after and before positions are the same' do - issue1.update relative_position: issue.relative_position + issue1.update! relative_position: issue.relative_position new_issue.move_between(issue, issue1) [issue, issue1].each(&:reset) @@ -630,7 +630,7 @@ end it 'positions issues between other two if distance is 1' do - issue1.update relative_position: issue.relative_position + 1 + issue1.update! relative_position: issue.relative_position + 1 new_issue.move_between(issue, issue1) [issue, issue1].each(&:reset) @@ -640,8 +640,8 @@ end it 'positions issue in the middle of other two if distance is big enough' do - issue.update relative_position: 6000 - issue1.update relative_position: 10000 + issue.update! relative_position: 6000 + issue1.update! relative_position: 10000 new_issue.move_between(issue, issue1) @@ -662,8 +662,8 @@ end it 'positions issue in the middle of other two if distance is not big enough' do - issue.update relative_position: 100 - issue1.update relative_position: 400 + issue.update! relative_position: 100 + issue1.update! relative_position: 400 new_issue.move_between(issue, issue1) @@ -671,8 +671,8 @@ end it 'positions issue in the middle of other two is there is no place' do - issue.update relative_position: 100 - issue1.update relative_position: 101 + issue.update! relative_position: 100 + issue1.update! relative_position: 101 new_issue.move_between(issue, issue1) [issue, issue1].each(&:reset) @@ -682,10 +682,10 @@ end it 'uses rebalancing if there is no place' do - issue.update relative_position: 100 - issue1.update relative_position: 101 + issue.update! relative_position: 100 + issue1.update! relative_position: 101 issue2 = create(:issue, relative_position: 102, project: project) - new_issue.update relative_position: 103 + new_issue.update! relative_position: 103 new_issue.move_between(issue1, issue2) new_issue.save! @@ -698,10 +698,10 @@ end it 'positions issue right if we pass non-sequential parameters' do - issue.update relative_position: 99 - issue1.update relative_position: 101 + issue.update! relative_position: 99 + issue1.update! relative_position: 101 issue2 = create(:issue, relative_position: 102, project: project) - new_issue.update relative_position: 103 + new_issue.update! relative_position: 103 new_issue.move_between(issue, issue2) new_issue.save! @@ -849,7 +849,7 @@ create(:issue_link, source: issue, target: blocked_issue_2, link_type: IssueLink::TYPE_BLOCKS) create(:issue_link, source: issue, target: blocked_issue_3, link_type: IssueLink::TYPE_BLOCKS) # Set to 0 for proper testing, this is being set by IssueLink callbacks. - issue.update(blocking_issues_count: 0) + issue.update!(blocking_issues_count: 0) expect { issue.update_blocking_issues_count! } .to change { issue.blocking_issues_count }.from(0).to(3) @@ -871,7 +871,7 @@ end before do - blocked_issue.update(blocking_issues_count: 0) + blocked_issue.update!(blocking_issues_count: 0) end context 'when blocked issue is closed' do @@ -887,9 +887,9 @@ context 'when blocked issue is reopened' do before do blocked_issue.close - blocked_issue.update(blocking_issues_count: 0) - blocking_issue1.update(blocking_issues_count: 0) - blocking_issue2.update(blocking_issues_count: 0) + blocked_issue.update!(blocking_issues_count: 0) + blocking_issue1.update!(blocking_issues_count: 0) + blocking_issue2.update!(blocking_issues_count: 0) end it 'updates blocking and blocked issues cache' do @@ -1021,7 +1021,7 @@ before do stub_licensed_features(incident_sla: license_available) issue_type = incident_type ? 'incident' : 'issue' - issue.update(issue_type: issue_type) + issue.update!(issue_type: issue_type) end it 'returns the expected value' do -- GitLab