From a2ae4214114d78c193e94e3dc45b457bf9147357 Mon Sep 17 00:00:00 2001 From: Igor Drozdov <idrozdov@gitlab.com> Date: Thu, 9 Mar 2023 21:17:54 +0000 Subject: [PATCH] Fix specs using anonymous ActiveRecord models These were raising an exception because they don't have a table name specified --- .../projects/vulnerability_feedback_controller_spec.rb | 2 +- .../models/concerns/filterable_by_test_reports_spec.rb | 2 ++ .../gitlab/analytics/cycle_analytics/average_spec.rb | 4 ++-- spec/models/members/project_member_spec.rb | 2 +- spec/serializers/entity_date_helper_spec.rb | 10 ++++++---- spec/support/helpers/stub_configuration.rb | 2 +- spec/support/helpers/stub_object_storage.rb | 4 ++-- 7 files changed, 15 insertions(+), 11 deletions(-) diff --git a/ee/spec/controllers/projects/vulnerability_feedback_controller_spec.rb b/ee/spec/controllers/projects/vulnerability_feedback_controller_spec.rb index e932c786e5aab..8b9c1acdfde27 100644 --- a/ee/spec/controllers/projects/vulnerability_feedback_controller_spec.rb +++ b/ee/spec/controllers/projects/vulnerability_feedback_controller_spec.rb @@ -488,7 +488,7 @@ def create_feedback(user:, project:, params:) context 'when deprecate_vulnerabilities_feedback FF is enabled' do let_it_be(:vulnerability) { create(:vulnerability) } let_it_be(:finding) { create(:vulnerabilities_finding, vulnerability: vulnerability) } - let_it_be(:feedback) { create(:vulnerability_feedback, :dismissal, finding_uuid: finding.uuid) } + let_it_be(:feedback) { create(:vulnerability_feedback, :dismissal, project: project, finding_uuid: finding.uuid) } before do allow_next_instance_of(VulnerabilityFeedbackModule::UpdateService) do |instance| diff --git a/ee/spec/models/concerns/filterable_by_test_reports_spec.rb b/ee/spec/models/concerns/filterable_by_test_reports_spec.rb index 84016298d1fa9..5fdedba559e57 100644 --- a/ee/spec/models/concerns/filterable_by_test_reports_spec.rb +++ b/ee/spec/models/concerns/filterable_by_test_reports_spec.rb @@ -5,6 +5,8 @@ RSpec.describe FilterableByTestReports do let(:test_class) do Class.new(ApplicationRecord) do + self.table_name = 'issues' + include FilterableByTestReports end end diff --git a/spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb b/spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb index de325454b3428..122a94a39c21f 100644 --- a/spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb +++ b/spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb @@ -40,7 +40,7 @@ subject(:average_duration_in_seconds) { average.seconds } context 'when no results' do - let(:query) { Issue.none } + let(:query) { Issue.joins(:metrics).none } it { is_expected.to eq(nil) } end @@ -54,7 +54,7 @@ subject(:average_duration_in_days) { average.days } context 'when no results' do - let(:query) { Issue.none } + let(:query) { Issue.joins(:metrics).none } it { is_expected.to eq(nil) } end diff --git a/spec/models/members/project_member_spec.rb b/spec/models/members/project_member_spec.rb index f0069b894949e..f2bc9b42b774e 100644 --- a/spec/models/members/project_member_spec.rb +++ b/spec/models/members/project_member_spec.rb @@ -9,7 +9,7 @@ describe 'validations' do it { is_expected.to allow_value('Project').for(:source_type) } - it { is_expected.not_to allow_value('project').for(:source_type) } + it { is_expected.not_to allow_value('Group').for(:source_type) } it { is_expected.to validate_inclusion_of(:access_level).in_array(Gitlab::Access.values) } end diff --git a/spec/serializers/entity_date_helper_spec.rb b/spec/serializers/entity_date_helper_spec.rb index 5a4571339b348..70094991c09d6 100644 --- a/spec/serializers/entity_date_helper_spec.rb +++ b/spec/serializers/entity_date_helper_spec.rb @@ -47,8 +47,10 @@ end describe '#remaining_days_in_words' do + let(:current_time) { Time.utc(2017, 3, 17) } + around do |example| - travel_to(Time.utc(2017, 3, 17)) { example.run } + travel_to(current_time) { example.run } end context 'when less than 31 days remaining' do @@ -74,10 +76,10 @@ expect(milestone_remaining).to eq("<strong>1</strong> day remaining") end - it 'returns 1 day remaining when queried mid-day' do - travel_back + context 'when queried mid-day' do + let(:current_time) { Time.utc(2017, 3, 17, 13, 10) } - travel_to(Time.utc(2017, 3, 17, 13, 10)) do + it 'returns 1 day remaining' do expect(milestone_remaining).to eq("<strong>1</strong> day remaining") end end diff --git a/spec/support/helpers/stub_configuration.rb b/spec/support/helpers/stub_configuration.rb index 4ca8f26be9ebd..2a7b36a4c00a0 100644 --- a/spec/support/helpers/stub_configuration.rb +++ b/spec/support/helpers/stub_configuration.rb @@ -179,7 +179,7 @@ def add_predicates(messages) def to_settings(hash) hash.transform_values do |value| if value.is_a? Hash - Settingslogic.new(value.deep_stringify_keys) + Settingslogic.new(value.to_h.deep_stringify_keys) else value end diff --git a/spec/support/helpers/stub_object_storage.rb b/spec/support/helpers/stub_object_storage.rb index 6b63385622838..d120e1805e35f 100644 --- a/spec/support/helpers/stub_object_storage.rb +++ b/spec/support/helpers/stub_object_storage.rb @@ -15,7 +15,7 @@ def stub_object_storage_uploader( direct_upload: false, cdn: {} ) - old_config = Settingslogic.new(config.deep_stringify_keys) + old_config = Settingslogic.new(config.to_h.deep_stringify_keys) new_config = config.to_h.deep_symbolize_keys.merge({ enabled: enabled, proxy_download: proxy_download, @@ -30,7 +30,7 @@ def stub_object_storage_uploader( allow(config).to receive(:proxy_download) { proxy_download } allow(config).to receive(:direct_upload) { direct_upload } - uploader_config = Settingslogic.new(new_config.deep_stringify_keys) + uploader_config = Settingslogic.new(new_config.to_h.deep_stringify_keys) allow(uploader).to receive(:object_store_options).and_return(uploader_config) allow(uploader.options).to receive(:object_store).and_return(uploader_config) -- GitLab