From 73183154c66a47eaabc1e41ba34bc392183fa5f3 Mon Sep 17 00:00:00 2001 From: Chad Woolley <cwoolley@gitlab.com> Date: Thu, 6 Jun 2024 03:14:58 -0700 Subject: [PATCH] Cleanup linter annotations for remote dev domain - Cleanup/update noinspection and fix other minor issues --- .../cluster_agents_finder.rb | 1 + .../remote_development/workspaces/create.rb | 2 +- .../workspaces_for_agent_resolver.rb | 1 - ee/app/models/remote_development/workspace.rb | 21 +++++++++++++------ .../remote_development/workspace_policy.rb | 3 --- .../agent_config/updater.rb | 2 +- .../validations.rb | 1 + .../settings/env_var_reader.rb | 3 ++- .../workspaces/create/workspace_creator.rb | 1 - .../workspaces_from_agent_infos_updater.rb | 1 - .../workspaces_dropdown_group_spec.rb | 3 ++- .../remote_development/workspaces_spec.rb | 4 ++-- .../agent_config/updater_spec.rb | 3 ++- .../create/main_integration_spec.rb | 2 ++ .../create/main_spec.rb | 4 ++-- .../create/mapping_creator_spec.rb | 5 +++++ .../delete/main_spec.rb | 4 ++-- .../remote_development/settings/main_spec.rb | 4 ++-- .../workspaces/create/creator_spec.rb | 4 ++-- .../workspaces/create/main_spec.rb | 4 ++-- .../reconcile/main_integration_spec.rb | 6 +++++- .../workspaces/reconcile/main_spec.rb | 4 ++-- .../workspaces_to_be_returned_updater_spec.rb | 4 +++- .../workspaces/update/main_spec.rb | 4 ++-- .../remote_development_agent_config_spec.rb | 4 +++- .../remote_development/workspace_spec.rb | 6 +++++- .../workspace_policy_spec.rb | 3 +-- .../network_policy_egress_validator_spec.rb | 2 +- ...pace_container_resources_validator_spec.rb | 1 - spec/lib/result_spec.rb | 2 +- spec/support/matchers/invoke_rop_steps.rb | 2 ++ .../lint_factories_shared_examples.rb | 2 +- ...etes_container_resources_validator_spec.rb | 1 - 33 files changed, 70 insertions(+), 44 deletions(-) diff --git a/ee/app/finders/remote_development/cluster_agents_finder.rb b/ee/app/finders/remote_development/cluster_agents_finder.rb index 3dc80d9b4e59..29a262920674 100644 --- a/ee/app/finders/remote_development/cluster_agents_finder.rb +++ b/ee/app/finders/remote_development/cluster_agents_finder.rb @@ -13,6 +13,7 @@ def self.fetch_agents(filter, namespace, user) when :unmapped validate_user_can_read_namespace_agent_mappings!(user: user, namespace: namespace) + # noinspection RailsParamDefResolve -- A symbol is a valid argument for 'select' existing_mapped_agents = RemoteDevelopmentNamespaceClusterAgentMapping .for_namespaces([namespace.id]) diff --git a/ee/app/graphql/mutations/remote_development/workspaces/create.rb b/ee/app/graphql/mutations/remote_development/workspaces/create.rb index 05d847449839..bda19dc4d44a 100644 --- a/ee/app/graphql/mutations/remote_development/workspaces/create.rb +++ b/ee/app/graphql/mutations/remote_development/workspaces/create.rb @@ -106,7 +106,7 @@ def resolve(args) end end - # noinspection RubyNilAnalysis + # noinspection RubyNilAnalysis - This is because the superclass #current_user uses #[], which can return nil track_usage_event(:users_creating_workspaces, current_user.id) service = ::RemoteDevelopment::Workspaces::CreateService.new(current_user: current_user) diff --git a/ee/app/graphql/resolvers/remote_development/workspaces_for_agent_resolver.rb b/ee/app/graphql/resolvers/remote_development/workspaces_for_agent_resolver.rb index 97e36aab46a3..880535807c02 100644 --- a/ee/app/graphql/resolvers/remote_development/workspaces_for_agent_resolver.rb +++ b/ee/app/graphql/resolvers/remote_development/workspaces_for_agent_resolver.rb @@ -4,7 +4,6 @@ module Resolvers module RemoteDevelopment class WorkspacesForAgentResolver < ::Resolvers::BaseResolver include ResolvesIds - # noinspection RubyResolve - likely due to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 include Gitlab::Graphql::Authorize::AuthorizeResource type Types::RemoteDevelopment::WorkspaceType.connection_type, null: true diff --git a/ee/app/models/remote_development/workspace.rb b/ee/app/models/remote_development/workspace.rb index f2bed27057f7..377811bc1ea2 100644 --- a/ee/app/models/remote_development/workspace.rb +++ b/ee/app/models/remote_development/workspace.rb @@ -4,7 +4,6 @@ module RemoteDevelopment class Workspace < ApplicationRecord include IgnorableColumns include Sortable - # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 include RemoteDevelopment::Workspaces::States include ::Gitlab::Utils::StrongMemoize @@ -80,6 +79,7 @@ def workspaces_count_for_current_user_and_agent .by_agent_ids(cluster_agent_id) .count end + strong_memoize_attr :workspaces_count_for_current_user_and_agent def workspaces_count_for_current_agent @@ -88,11 +88,13 @@ def workspaces_count_for_current_agent .by_agent_ids(cluster_agent_id) .count end + strong_memoize_attr :workspaces_count_for_current_agent def exceeds_workspaces_per_user_quota? return unless remote_development_agent_config + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 quota = remote_development_agent_config.workspaces_per_user_quota return true if quota == 0 return false if quota == -1 @@ -103,6 +105,7 @@ def exceeds_workspaces_per_user_quota? def exceeds_workspaces_quota? return unless remote_development_agent_config + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 quota = remote_development_agent_config.workspaces_quota return true if quota == 0 return false if quota == -1 @@ -159,21 +162,27 @@ def enforce_permanent_termination def enforce_quotas agent_config = remote_development_agent_config if exceeds_workspaces_per_user_quota? + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 errors.add :base, - format(s_('RemoteDevelopment|You cannot create a workspace because you already have "%{count}" existing workspaces for the given agent with a per user quota of "%{quota}" workspaces'), + format( + s_('RemoteDevelopment|You cannot create a workspace because you already have "%{count}" existing workspaces for the given agent with a per user quota of "%{quota}" workspaces'), count: workspaces_count_for_current_user_and_agent, - quota: agent_config.workspaces_per_user_quota) + quota: agent_config.workspaces_per_user_quota + ) elsif exceeds_workspaces_quota? + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 errors.add :base, - format(s_('RemoteDevelopment|You cannot create a workspace because there are already "%{count}" existing workspaces for the given agent with a total quota of "%{quota}" workspaces'), + format( + s_('RemoteDevelopment|You cannot create a workspace because there are already "%{count}" existing workspaces for the given agent with a total quota of "%{quota}" workspaces'), count: workspaces_count_for_current_agent, - quota: agent_config.workspaces_quota) + quota: agent_config.workspaces_quota + ) end end + # rubocop:enable Layout/LineLength -- Long messages for UI def touch_desired_state_updated_at - # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 self.desired_state_updated_at = Time.current.utc end end diff --git a/ee/app/policies/remote_development/workspace_policy.rb b/ee/app/policies/remote_development/workspace_policy.rb index bb3a887a24f7..8dc16e867401 100644 --- a/ee/app/policies/remote_development/workspace_policy.rb +++ b/ee/app/policies/remote_development/workspace_policy.rb @@ -3,9 +3,6 @@ module RemoteDevelopment # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-25400 class WorkspacePolicy < BasePolicy - # TODO: This policy should be updated/replaced with a new authorization scheme based on runners. - # See https://gitlab.com/groups/gitlab-org/-/epics/10272 - condition(:can_access_workspaces_feature) { user&.can?(:access_workspaces_feature, :global) } condition(:can_admin_cluster_agent_for_workspace) { user&.can?(:admin_cluster, workspace.agent) } condition(:can_admin_owned_workspace) { workspace_owner? && has_developer_access_to_workspace_project? } diff --git a/ee/lib/remote_development/agent_config/updater.rb b/ee/lib/remote_development/agent_config/updater.rb index 3b3f8e37acca..b584586cf26b 100644 --- a/ee/lib/remote_development/agent_config/updater.rb +++ b/ee/lib/remote_development/agent_config/updater.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -# noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 module RemoteDevelopment module AgentConfig class Updater @@ -47,6 +46,7 @@ def self.update(value) workspaces_update_fields = { force_include_all_resources: true } + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 if remote_development_agent_config.dns_zone_previously_was workspaces_update_fields[:dns_zone] = remote_development_agent_config.dns_zone end diff --git a/ee/lib/remote_development/namespace_cluster_agent_mappings/validations.rb b/ee/lib/remote_development/namespace_cluster_agent_mappings/validations.rb index 11709fcc99b5..4aaeea5093ea 100644 --- a/ee/lib/remote_development/namespace_cluster_agent_mappings/validations.rb +++ b/ee/lib/remote_development/namespace_cluster_agent_mappings/validations.rb @@ -42,6 +42,7 @@ def self.traversal_ids_for_cluster_agents(cluster_agent_ids:) # project_namespaces_by_id must contain project.project_namespace_id as "projects" table has a # ON CASCADE DELETE constraint with respect to the projects table. As such, if a project can be retrieved # from the database, so should its project_namespace + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 project_namespace = project_namespaces_by_id[project.project_namespace_id] hash[cluster_agent_id] = project_namespace.traversal_ids diff --git a/ee/lib/remote_development/settings/env_var_reader.rb b/ee/lib/remote_development/settings/env_var_reader.rb index 868f45471e76..0187af47ad60 100644 --- a/ee/lib/remote_development/settings/env_var_reader.rb +++ b/ee/lib/remote_development/settings/env_var_reader.rb @@ -41,11 +41,12 @@ def self.read(value) end # @param [String] env_var_name - # @param [Integer,String] env_var_value_string + # @param [String] env_var_value_string # @param [Class] setting_type # @return [Object] # @raise [RuntimeError] def self.cast_value(env_var_name:, env_var_value_string:, setting_type:) + # noinspection RubyIfCanBeCaseInspection -- This cannot be a case statement - see discussion here https://gitlab.com/gitlab-org/gitlab/-/merge_requests/148287#note_1849160293 if setting_type == String env_var_value_string elsif setting_type == Integer diff --git a/ee/lib/remote_development/workspaces/create/workspace_creator.rb b/ee/lib/remote_development/workspaces/create/workspace_creator.rb index f64a90c0442f..3b44670b8f1f 100644 --- a/ee/lib/remote_development/workspaces/create/workspace_creator.rb +++ b/ee/lib/remote_development/workspaces/create/workspace_creator.rb @@ -3,7 +3,6 @@ module RemoteDevelopment module Workspaces module Create - # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 class WorkspaceCreator include States include Messages diff --git a/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb b/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb index a71ab3aa903c..b9bce56b395b 100644 --- a/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb +++ b/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb @@ -4,7 +4,6 @@ module RemoteDevelopment module Workspaces module Reconcile module Persistence - # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 class WorkspacesFromAgentInfosUpdater # @param [Hash] value # @return [Hash] diff --git a/ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb b/ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb index da0a5c63af70..03b9d2948b02 100644 --- a/ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb +++ b/ee/spec/features/remote_development/workspaces_dropdown_group_spec.rb @@ -2,7 +2,6 @@ require 'spec_helper' -# noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 RSpec.describe 'Remote Development workspaces dropdown group', :api, :js, feature_category: :remote_development do include_context 'with remote development shared fixtures' include_context 'file upload requests helpers' @@ -75,6 +74,7 @@ it 'allows navigating to the new workspace page' do click_link 'New workspace' + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(page).to have_current_path("#{new_remote_development_workspace_path}?project=#{project.full_path}") expect(page).to have_css('button', text: project.name_with_namespace) end @@ -138,6 +138,7 @@ def expect_workspace_state_indicator(state) end describe 'when viewing blob page' do + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 let(:subject) { project_blob_path(project, "#{project.default_branch}/#{devfile_path}") } it_behaves_like 'views and manages workspaces in workspaces dropdown group based on feature flag' diff --git a/ee/spec/features/remote_development/workspaces_spec.rb b/ee/spec/features/remote_development/workspaces_spec.rb index 9916870ef2c2..ed2a666e3ffe 100644 --- a/ee/spec/features/remote_development/workspaces_spec.rb +++ b/ee/spec/features/remote_development/workspaces_spec.rb @@ -2,7 +2,6 @@ require 'spec_helper' -# noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 RSpec.describe 'Remote Development workspaces', :api, :js, feature_category: :remote_development do include_context 'with remote development shared fixtures' include_context 'file upload requests helpers' @@ -45,6 +44,7 @@ # NAVIGATE TO WORKSPACES PAGE + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 visit remote_development_workspaces_path wait_for_requests @@ -54,7 +54,7 @@ click_button 'Select a project' find_by_testid("listbox-item-#{project.full_path}").click wait_for_requests - # noinspection RubyMismatchedArgumentType - TODO: Try suggestions in https://youtrack.jetbrains.com/issue/RUBY-25400/Programmatically-defined-constants-always-produce-Unresolved-reference-error#focus=Comments-27-8161148.0-0 + # noinspection RubyMismatchedArgumentType -- Rubymine is finding the wrong `select` select agent.name, from: 'Cluster agent' fill_in 'Workspace automatically terminates after', with: '20' click_button 'Create workspace' diff --git a/ee/spec/lib/remote_development/agent_config/updater_spec.rb b/ee/spec/lib/remote_development/agent_config/updater_spec.rb index 9057014fda55..519da9f62987 100644 --- a/ee/spec/lib/remote_development/agent_config/updater_spec.rb +++ b/ee/spec/lib/remote_development/agent_config/updater_spec.rb @@ -2,7 +2,6 @@ require 'spec_helper' -# noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 RSpec.describe ::RemoteDevelopment::AgentConfig::Updater, feature_category: :remote_development do include ResultMatchers @@ -99,7 +98,9 @@ .to eq(default_resources_per_workspace_container) expect(config_instance.max_resources_per_workspace.deep_symbolize_keys) .to eq(max_resources_per_workspace) + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(config_instance.workspaces_quota).to eq(saved_quota) + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(config_instance.workspaces_per_user_quota).to eq(saved_quota) expect(result) diff --git a/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_integration_spec.rb b/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_integration_spec.rb index 26bd5cb10e36..400097b55b6c 100644 --- a/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_integration_spec.rb +++ b/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_integration_spec.rb @@ -26,8 +26,10 @@ expect(response.dig(:payload, :namespace_cluster_agent_mapping)).not_to be_nil mapping = response.dig(:payload, :namespace_cluster_agent_mapping) + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(mapping.cluster_agent_id).to eq(cluster_agent.id) expect(mapping.namespace_id).to eq(namespace.id) + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(mapping.creator_id).to eq(creator.id) end end diff --git a/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_spec.rb b/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_spec.rb index 1feba23ce63f..d049b9bf4ef3 100644 --- a/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_spec.rb +++ b/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_spec.rb @@ -22,7 +22,7 @@ end it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end @@ -47,7 +47,7 @@ shared_examples "rop invocation with error response" do it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end diff --git a/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/mapping_creator_spec.rb b/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/mapping_creator_spec.rb index e204aa4adc5f..679628c469dd 100644 --- a/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/mapping_creator_spec.rb +++ b/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/mapping_creator_spec.rb @@ -38,18 +38,21 @@ end context 'when cluster agent does not exist' do + # noinspection RubyResolve -- Rubymine isn't finding build_stubbed let_it_be(:agent) { build_stubbed(:cluster_agent) } it_behaves_like 'err result', expected_error_details: "Agent can't be blank" end context 'when namespace does not exist' do + # noinspection RubyResolve -- Rubymine isn't finding build_stubbed let_it_be(:namespace) { build_stubbed(:group) } it_behaves_like 'err result', expected_error_details: "Namespace can't be blank" end context 'when user does not exist' do + # noinspection RubyResolve -- Rubymine isn't finding build_stubbed let_it_be(:user) { build_stubbed(:user) } it_behaves_like 'err result', expected_error_details: "User can't be blank" @@ -62,8 +65,10 @@ expect(result.unwrap).to be_a(RemoteDevelopment::Messages::NamespaceClusterAgentMappingCreateSuccessful) new_mapping = result.unwrap.context[:namespace_cluster_agent_mapping] + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(new_mapping.cluster_agent_id).to be(agent.id) expect(new_mapping.namespace_id).to be(namespace.id) + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(new_mapping.creator_id).to be(user.id) end end diff --git a/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/delete/main_spec.rb b/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/delete/main_spec.rb index 7ff9ac5e8d2c..683434fda20b 100644 --- a/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/delete/main_spec.rb +++ b/ee/spec/lib/remote_development/namespace_cluster_agent_mappings/delete/main_spec.rb @@ -21,7 +21,7 @@ end it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end @@ -46,7 +46,7 @@ shared_examples "rop invocation with error response" do it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end diff --git a/ee/spec/lib/remote_development/settings/main_spec.rb b/ee/spec/lib/remote_development/settings/main_spec.rb index 0cd4194f27d6..0b5415c88d33 100644 --- a/ee/spec/lib/remote_development/settings/main_spec.rb +++ b/ee/spec/lib/remote_development/settings/main_spec.rb @@ -28,7 +28,7 @@ end it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.get_settings(value_passed_along_steps) end @@ -45,7 +45,7 @@ shared_examples "rop invocation with error response" do it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.get_settings(value_passed_along_steps) end diff --git a/ee/spec/lib/remote_development/workspaces/create/creator_spec.rb b/ee/spec/lib/remote_development/workspaces/create/creator_spec.rb index ee8253488ecf..cf9d54bf80a4 100644 --- a/ee/spec/lib/remote_development/workspaces/create/creator_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/create/creator_spec.rb @@ -53,7 +53,7 @@ end it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.create(initial_value) end @@ -70,7 +70,7 @@ shared_examples "rop invocation with error response" do it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.create(initial_value) end diff --git a/ee/spec/lib/remote_development/workspaces/create/main_spec.rb b/ee/spec/lib/remote_development/workspaces/create/main_spec.rb index 5465bac74597..42dcb6417457 100644 --- a/ee/spec/lib/remote_development/workspaces/create/main_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/create/main_spec.rb @@ -30,7 +30,7 @@ end it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end @@ -53,7 +53,7 @@ shared_examples "rop invocation with error response" do it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end diff --git a/ee/spec/lib/remote_development/workspaces/reconcile/main_integration_spec.rb b/ee/spec/lib/remote_development/workspaces/reconcile/main_integration_spec.rb index e3dcd80082e8..969ec5c90d73 100644 --- a/ee/spec/lib/remote_development/workspaces/reconcile/main_integration_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/reconcile/main_integration_spec.rb @@ -3,7 +3,6 @@ require 'spec_helper' # rubocop:disable RSpec/MultipleMemoizedHelpers -- needed helpers for multiple cases -# noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Main, "Integration", :freeze_time, feature_category: :remote_development do include_context 'with remote development shared fixtures' @@ -285,13 +284,16 @@ before do # Ensure that both desired_state_updated_at and responded_to_agent_at are before Time.current, # so that we can test for any necessary differences after processing updates them + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace.desired_state_updated_at).to be_before(Time.current) + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace.responded_to_agent_at).to be_before(Time.current) end after do # After processing, the responded_to_agent_at should always have been updated workspace.reload + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace.responded_to_agent_at) .not_to be_before(workspace.desired_state_updated_at) end @@ -300,6 +302,7 @@ context 'when desired_state matches actual_state' do # rubocop:todo RSpec/ExpectInHook -- This could be moved to a shared example before do + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace.responded_to_agent_at) .to be_after(workspace.desired_state_updated_at) end @@ -371,6 +374,7 @@ # rubocop:disable RSpec/ExpectInHook -- This could be moved to a shared example before do + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace.responded_to_agent_at) .to be_before(workspace.desired_state_updated_at) end diff --git a/ee/spec/lib/remote_development/workspaces/reconcile/main_spec.rb b/ee/spec/lib/remote_development/workspaces/reconcile/main_spec.rb index d9786b488ceb..2c7fc9af41cd 100644 --- a/ee/spec/lib/remote_development/workspaces/reconcile/main_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/reconcile/main_spec.rb @@ -42,7 +42,7 @@ end it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end @@ -59,7 +59,7 @@ shared_examples "rop invocation with error response" do it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end diff --git a/ee/spec/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater_spec.rb b/ee/spec/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater_spec.rb index e2e00e9aeb55..7f923af0cced 100644 --- a/ee/spec/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater_spec.rb @@ -2,7 +2,6 @@ require 'spec_helper' -# noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Persistence::WorkspacesToBeReturnedUpdater, feature_category: :remote_development do let_it_be(:user) { create(:user) } let_it_be(:agent) { create(:ee_cluster_agent, :with_remote_development_agent_config) } @@ -70,8 +69,11 @@ context "for update_type FULL" do it "updates all workspaces", :unlimited_max_formatted_output_length do returned_value + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace1.reload.responded_to_agent_at).to be > 1.minute.ago + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace2.reload.responded_to_agent_at).to be > 1.minute.ago + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace3.reload.responded_to_agent_at).to be > 1.minute.ago end diff --git a/ee/spec/lib/remote_development/workspaces/update/main_spec.rb b/ee/spec/lib/remote_development/workspaces/update/main_spec.rb index 607981652a8c..c9bbeb8ec982 100644 --- a/ee/spec/lib/remote_development/workspaces/update/main_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/update/main_spec.rb @@ -22,7 +22,7 @@ end it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end @@ -47,7 +47,7 @@ shared_examples "rop invocation with error response" do it "returns expected response" do - # noinspection RubyResolve -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect do described_class.main(value_passed_along_steps) end diff --git a/ee/spec/models/remote_development/remote_development_agent_config_spec.rb b/ee/spec/models/remote_development/remote_development_agent_config_spec.rb index 1474c0021f1d..e9120e0f5135 100644 --- a/ee/spec/models/remote_development/remote_development_agent_config_spec.rb +++ b/ee/spec/models/remote_development/remote_development_agent_config_spec.rb @@ -2,7 +2,6 @@ require 'spec_helper' -# noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 RSpec.describe RemoteDevelopment::RemoteDevelopmentAgentConfig, feature_category: :remote_development do let_it_be_with_reload(:agent) { create(:ee_cluster_agent, :with_remote_development_agent_config) } let(:default_default_resources_per_workspace_container) { {} } @@ -55,6 +54,7 @@ end it 'when network_policy_egress is nil' do + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 config.network_policy_egress = nil expect(config).not_to be_valid expect(config.errors[:network_policy_egress]).to include( @@ -69,6 +69,7 @@ end it 'when default_resources_per_workspace_container is nil' do + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 config.default_resources_per_workspace_container = nil expect(config).not_to be_valid expect(config.errors[:default_resources_per_workspace_container]).to include( @@ -83,6 +84,7 @@ end it 'when default_resources_per_workspace_container is nil' do + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 config.max_resources_per_workspace = nil expect(config).not_to be_valid expect(config.errors[:max_resources_per_workspace]).to include( diff --git a/ee/spec/models/remote_development/workspace_spec.rb b/ee/spec/models/remote_development/workspace_spec.rb index 34af0e778ef5..5c69f93353dc 100644 --- a/ee/spec/models/remote_development/workspace_spec.rb +++ b/ee/spec/models/remote_development/workspace_spec.rb @@ -2,7 +2,6 @@ require 'spec_helper' -# noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 RSpec.describe RemoteDevelopment::Workspace, feature_category: :remote_development do let_it_be(:user) { create(:user) } let_it_be(:agent, reload: true) { create(:ee_cluster_agent, :with_remote_development_agent_config) } @@ -49,6 +48,7 @@ expect(agent.remote_development_agent_config.workspaces.first).to eq(workspace) expect(workspace.url_prefix).to eq("60001-#{workspace.name}") expect(workspace.dns_zone).to eq(agent.remote_development_agent_config.dns_zone) + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace.url_query_string).to eq("folder=dir%2Ffile") end end @@ -80,6 +80,7 @@ it 'sets desired_state_updated_at' do workspace.save! + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 expect(workspace.desired_state_updated_at).to eq(Time.current) end end @@ -192,7 +193,9 @@ context 'when dns_zone matches config dns_zone' do before do + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 workspace.dns_zone = 'zone1' + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 agent.remote_development_agent_config.dns_zone = 'zone1' end @@ -204,6 +207,7 @@ context 'when dns_zone does not match config dns_zone' do before do workspace.dns_zone = 'zone1' + # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31542 agent.remote_development_agent_config.dns_zone = 'zone2' end diff --git a/ee/spec/policies/remote_development/workspace_policy_spec.rb b/ee/spec/policies/remote_development/workspace_policy_spec.rb index bca3db195c37..85a7da573b52 100644 --- a/ee/spec/policies/remote_development/workspace_policy_spec.rb +++ b/ee/spec/policies/remote_development/workspace_policy_spec.rb @@ -16,7 +16,6 @@ let_it_be(:workspace_project, refind: true) { create(:project, creator: workspace_project_creator) } let_it_be(:workspace_owner, refind: true) { create(:user) } let_it_be(:workspace, refind: true) do - # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31543 create(:workspace, project: workspace_project, agent: agent, user: workspace_owner) end @@ -45,7 +44,7 @@ end shared_examples 'fixture sanity checks' do - # noinspection RubyResolve - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-31543 + # noinspection RubyResolve -- Rubymine is incorrectly resolving workspace_project as `QA::Resource::Project`. it "has fixture sanity checks" do expect(agent_project.creator_id).not_to eq(workspace_project.creator_id) expect(agent_project.creator_id).not_to eq(user.id) diff --git a/ee/spec/validators/remote_development/network_policy_egress_validator_spec.rb b/ee/spec/validators/remote_development/network_policy_egress_validator_spec.rb index 1c24c6ae7d11..cbaa4e4c6e52 100644 --- a/ee/spec/validators/remote_development/network_policy_egress_validator_spec.rb +++ b/ee/spec/validators/remote_development/network_policy_egress_validator_spec.rb @@ -4,6 +4,7 @@ RSpec.describe RemoteDevelopment::NetworkPolicyEgressValidator, feature_category: :remote_development do let(:model) do + # noinspection RubyArgCount -- Rubymine is detecting wrong class here Class.new do include ActiveModel::Model include ActiveModel::Validations @@ -17,7 +18,6 @@ using RSpec::Parameterized::TableSyntax - # noinspection RubyMismatchedArgumentType - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-32041 where(:egress, :validity, :errors) do # rubocop:disable Layout/LineLength -- The RSpec table syntax often requires long lines for errors nil | false | { egress: ['must be an array'] } diff --git a/ee/spec/validators/remote_development/workspace_container_resources_validator_spec.rb b/ee/spec/validators/remote_development/workspace_container_resources_validator_spec.rb index ee7064777cd8..27e8ca7db5ab 100644 --- a/ee/spec/validators/remote_development/workspace_container_resources_validator_spec.rb +++ b/ee/spec/validators/remote_development/workspace_container_resources_validator_spec.rb @@ -17,7 +17,6 @@ using RSpec::Parameterized::TableSyntax - # noinspection RubyMismatchedArgumentType - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-32041 where(:resources, :validity, :errors) do # rubocop:disable Layout/LineLength -- The RSpec table syntax often requires long lines for errors nil | false | { resources: ['must be a hash'] } diff --git a/spec/lib/result_spec.rb b/spec/lib/result_spec.rb index 2b88521fe141..388d573bacc2 100644 --- a/spec/lib/result_spec.rb +++ b/spec/lib/result_spec.rb @@ -160,7 +160,7 @@ def self.triple(value) it 'raises TypeError if passed anything other than a lambda or singleton method object' do ex = TypeError msg = /expects a lambda or singleton method object/ - # noinspection RubyMismatchedArgumentType + # noinspection RubyMismatchedArgumentType -- intentionally passing invalid types expect { Result.ok(1).and_then('string') }.to raise_error(ex, msg) expect { Result.ok(1).and_then(proc { Result.ok(1) }) }.to raise_error(ex, msg) expect { Result.ok(1).and_then(1.method(:to_s)) }.to raise_error(ex, msg) diff --git a/spec/support/matchers/invoke_rop_steps.rb b/spec/support/matchers/invoke_rop_steps.rb index af0012aaf13f..30f6bd31ec90 100644 --- a/spec/support/matchers/invoke_rop_steps.rb +++ b/spec/support/matchers/invoke_rop_steps.rb @@ -213,6 +213,7 @@ def set_up_step_class_expectation( value_passed_along_steps: value_passed_along_steps ) + # noinspection RubyNilAnalysis -- We ensure this is not nil expected_return_value_matcher.call(block) end @@ -249,6 +250,7 @@ def set_up_step_class_expectation( chain :and_return_expected_value do |value| validate_expected_return_value(value) expected_return_value = value + # noinspection RubyUnusedLocalVariable -- TODO: open issue and add to https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues expected_return_value_matcher = if value.is_a?(Hash) || value.is_a?(Result) ->(main) { expect(main.call).to eq(value) } else diff --git a/spec/support/shared_examples/lint_factories_shared_examples.rb b/spec/support/shared_examples/lint_factories_shared_examples.rb index 31266379d4be..b356701fed85 100644 --- a/spec/support/shared_examples/lint_factories_shared_examples.rb +++ b/spec/support/shared_examples/lint_factories_shared_examples.rb @@ -34,7 +34,7 @@ def self.lint_factories_for(example_group) return if without_factory_defaults.empty? && with_factory_defaults.empty? - RSpec.describe "Lint factories for #{described_class}" do + RSpec.describe "Lint factories for #{described_class}", feature_category: :shared do include_examples 'Lint factories', with_factory_defaults, without_factory_defaults end end diff --git a/spec/validators/kubernetes_container_resources_validator_spec.rb b/spec/validators/kubernetes_container_resources_validator_spec.rb index aea561bafb9a..4e8565ab241c 100644 --- a/spec/validators/kubernetes_container_resources_validator_spec.rb +++ b/spec/validators/kubernetes_container_resources_validator_spec.rb @@ -17,7 +17,6 @@ using RSpec::Parameterized::TableSyntax - # noinspection RubyMismatchedArgumentType - https://handbook.gitlab.com/handbook/tools-and-tips/editors-and-ides/jetbrains-ides/tracked-jetbrains-issues/#ruby-32041 where(:resources, :validity, :errors) do # rubocop:disable Layout/LineLength -- The RSpec table syntax often requires long lines for errors nil | false | { resources: ["must be a hash"] } -- GitLab