diff --git a/ee/app/graphql/resolvers/remote_development/namespace/cluster_agents_resolver.rb b/ee/app/graphql/resolvers/remote_development/namespace/cluster_agents_resolver.rb index bc66e5e6064f6d532ad05d4d2887d3dd3cf0f54b..65b77ad765db2e7d6dc1a6f50eb9a02bc29a310c 100644 --- a/ee/app/graphql/resolvers/remote_development/namespace/cluster_agents_resolver.rb +++ b/ee/app/graphql/resolvers/remote_development/namespace/cluster_agents_resolver.rb @@ -20,6 +20,7 @@ def resolve(**args) end raise_resource_not_available_error! unless @object.group_namespace? + raise_resource_not_available_error! unless current_user ::RemoteDevelopment::NamespaceClusterAgentsFinder.execute( namespace: @object, diff --git a/ee/spec/requests/api/graphql/remote_development/README.md b/ee/spec/requests/api/graphql/remote_development/README.md index 095ee2d966a8f507af9fde289c71c2fe9b3c1687..958956a930256ba6c7a71ab3dcfbd17cc52b1319 100644 --- a/ee/spec/requests/api/graphql/remote_development/README.md +++ b/ee/spec/requests/api/graphql/remote_development/README.md @@ -28,7 +28,7 @@ Here are the related spec folders for the fields (in alphabetical order by resol - Resolver source file for `tests.yml` and `verify-tff-mapping`: `ee/app/graphql/resolvers/remote_development/cluster_agent/workspaces_agent_config_resolver.rb` - GraphQL Field: `Query.namespace.remote_development_cluster_agents` - - Spec folder: `ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents` + - Spec folder: `ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents` - API docs: https://docs.gitlab.com/ee/api/graphql/reference/#namespaceremotedevelopmentclusteragents - Resolver source file for `tests.yml` and `verify-tff-mapping`: `ee/app/graphql/resolvers/remote_development/namespace/cluster_agents_resolver.rb` - Notes: This is the same resolver used by `Query.currentUser.namespace.workspaces_cluster_agents`. THIS FIELD IS DEPRECATED AND WILL BE REMOVED IN THE 18.0 RELEASE. diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/TODO_DEPRECATED.md b/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/TODO_DEPRECATED.md deleted file mode 100644 index 9e4a99f59ce95700a017c98bd321d4062d5814ae..0000000000000000000000000000000000000000 --- a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/TODO_DEPRECATED.md +++ /dev/null @@ -1,6 +0,0 @@ -TODO: namespace.remoteDevelopmentClusterAgents GraphQL is deprecated. - -Remove this entire folder `ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents` -and its contents in 17.10 - -https://gitlab.com/gitlab-org/gitlab/-/issues/480769 diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/shared.rb b/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/shared.rb deleted file mode 100644 index fa6220b7ba78478ec4e612871d535853aa3c7e8f..0000000000000000000000000000000000000000 --- a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/shared.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -require_relative "../workspaces_cluster_agents/shared" - -RSpec.shared_context "for a Query.namespace.remote_development_cluster_agents query" do - include_context "for a Query.namespace.workspaces_cluster_agents query" - - let(:fields) do - query_graphql_field( - :remote_development_cluster_agents, - attributes, - [ - query_graphql_field( - :nodes, - all_graphql_fields_for("cluster_agents".classify, max_depth: 1) - ) - ] - ) - end - - subject(:actual_agents) { graphql_dig_at(graphql_data, :namespace, :remoteDevelopmentClusterAgents, :nodes) } -end diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_available_filter_arg_spec.rb b/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_available_filter_arg_spec.rb deleted file mode 100644 index a496fb19ce8d6dc584ae1375b3f0336721b347e1..0000000000000000000000000000000000000000 --- a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_available_filter_arg_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -require "spec_helper" -require_relative "./shared" - -RSpec.describe "Query.namespace.remote_development_cluster_agents(filter: AVAILABLE)", feature_category: :workspaces do - let(:filter) { :AVAILABLE } - let(:agent) { available_agent } - let(:expected_agents) { [available_agent] } - let_it_be(:authorized_user_project_access_level) { :developer } - let_it_be(:authorized_user_namespace_access_level) { nil } - let_it_be(:unauthorized_user_project_access_level) { :reporter } - let_it_be(:unauthorized_user_namespace_access_level) { nil } - - include_context "with filter argument" - include_context "for a Query.namespace.remote_development_cluster_agents query" - - it_behaves_like "multiple agents in namespace query" -end diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_directly_mapped_filter_arg_spec.rb b/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_directly_mapped_filter_arg_spec.rb deleted file mode 100644 index b858d7a1b664fe0fd3418234fa721230069329cb..0000000000000000000000000000000000000000 --- a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_directly_mapped_filter_arg_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -require "spec_helper" -require_relative "./shared" - -RSpec.describe "Query.namespace.remote_development_cluster_agents(filter: DIRECTLY_MAPPED)", feature_category: :workspaces do - let(:filter) { :DIRECTLY_MAPPED } - let(:agent) { directly_mapped_agent } - let(:expected_agents) { [directly_mapped_agent, available_agent] } - let_it_be(:authorized_user_project_access_level) { nil } - let_it_be(:authorized_user_namespace_access_level) { :maintainer } - let_it_be(:unauthorized_user_project_access_level) { nil } - let_it_be(:unauthorized_user_namespace_access_level) { :developer } - - include_context "with filter argument" - include_context "for a Query.namespace.remote_development_cluster_agents query" - - it_behaves_like "multiple agents in namespace query" -end diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_unmapped_filter_arg_spec.rb b/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_unmapped_filter_arg_spec.rb deleted file mode 100644 index 339ac0598778382103eea77c9224a0473b09ca46..0000000000000000000000000000000000000000 --- a/ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_unmapped_filter_arg_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' -require_relative './shared' - -RSpec.describe 'Query.namespace.remote_development_cluster_agents(filter: UNMAPPED)', feature_category: :workspaces do - let(:filter) { :UNMAPPED } - let(:agent) { unmapped_agent } - let(:expected_agents) { [unmapped_agent] } - let_it_be(:authorized_user_project_access_level) { nil } - let_it_be(:authorized_user_namespace_access_level) { :maintainer } - let_it_be(:unauthorized_user_project_access_level) { nil } - let_it_be(:unauthorized_user_namespace_access_level) { :developer } - - include_context "with filter argument" - include_context "for a Query.namespace.remote_development_cluster_agents query" - - it_behaves_like "multiple agents in namespace query" -end diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/shared.rb b/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/shared.rb index 7b1da3fd57ae4e12f896e93511dde3391073a503..0213a36a6c7e62194706b08e73db768730bbe3f1 100644 --- a/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/shared.rb +++ b/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/shared.rb @@ -144,5 +144,12 @@ it_behaves_like "query returns blank" end + context "when there is no user" do + include_context "with no user" + + it_behaves_like "query includes graphql error", + "does not exist or you don't have permission to perform this action" + end + it_behaves_like "query in unlicensed environment" end diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_available_filter_arg_spec.rb b/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_available_filter_arg_spec.rb index 747f01e6d11195c50e57074e45187f5b2b8165b5..78e06e789528b3eca0fead5d58c755de3a789662 100644 --- a/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_available_filter_arg_spec.rb +++ b/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_available_filter_arg_spec.rb @@ -3,7 +3,7 @@ require "spec_helper" require_relative "./shared" -RSpec.describe "Query.namespace.remote_development_cluster_agents(filter: AVAILABLE)", feature_category: :workspaces do +RSpec.describe "Query.namespace.workspaces_cluster_agents(filter: AVAILABLE)", feature_category: :workspaces do let(:filter) { :AVAILABLE } let(:agent) { available_agent } let(:expected_agents) { [available_agent] } diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_directly_mapped_filter_arg_spec.rb b/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_directly_mapped_filter_arg_spec.rb index 009a7e0bbabaeedb48185c4ef7cc92fd41a9fca5..1893056536387404d4d6b871c2c5a01a894df45e 100644 --- a/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_directly_mapped_filter_arg_spec.rb +++ b/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_directly_mapped_filter_arg_spec.rb @@ -3,7 +3,7 @@ require "spec_helper" require_relative "./shared" -RSpec.describe "Query.namespace.remote_development_cluster_agents(filter: DIRECTLY_MAPPED)", feature_category: :workspaces do +RSpec.describe "Query.namespace.workspaces_cluster_agents(filter: DIRECTLY_MAPPED)", feature_category: :workspaces do let(:filter) { :DIRECTLY_MAPPED } let(:agent) { directly_mapped_agent } let(:expected_agents) { [directly_mapped_agent, available_agent] } diff --git a/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_unmapped_filter_arg_spec.rb b/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_unmapped_filter_arg_spec.rb index fafc00ad978c939cab32da31ab9e8c26c2cebd80..ef48103f3d317cdcec8f35adda84e855058b204a 100644 --- a/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_unmapped_filter_arg_spec.rb +++ b/ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_unmapped_filter_arg_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_relative './shared' -RSpec.describe 'Query.namespace.remote_development_cluster_agents(filter: UNMAPPED)', feature_category: :workspaces do +RSpec.describe 'Query.namespace.workspaces_cluster_agents(filter: UNMAPPED)', feature_category: :workspaces do let(:filter) { :UNMAPPED } let(:agent) { unmapped_agent } let(:expected_agents) { [unmapped_agent] } diff --git a/ee/spec/requests/api/graphql/remote_development/shared.rb b/ee/spec/requests/api/graphql/remote_development/shared.rb index f3ad366f35fa76332b66027cf10dbb65ea7ae083..168923be9aff9482d26ab797882ae50e16524cc7 100644 --- a/ee/spec/requests/api/graphql/remote_development/shared.rb +++ b/ee/spec/requests/api/graphql/remote_development/shared.rb @@ -146,6 +146,10 @@ let_it_be(:current_user) { unauthorized_user } end +RSpec.shared_context 'with no user' do + let_it_be(:current_user) { nil } +end + RSpec.shared_context 'with other workspace created' do # This workspace will only be accessible by admins let_it_be(:other_workspace) { create(:workspace, name: 'other-workspace') } diff --git a/scripts/verify-tff-mapping b/scripts/verify-tff-mapping index aeb114eec370fd023344cb866393f70dc652b603..b53a0ca7819ec7ed433ee707d795ef32398330de 100755 --- a/scripts/verify-tff-mapping +++ b/scripts/verify-tff-mapping @@ -509,9 +509,6 @@ tests = [ changed_file: 'ee/app/graphql/resolvers/remote_development/namespace/cluster_agents_resolver.rb', # rubocop:disable Layout/LineLength -- fix CI failures - not sure why other lines in this file don't get errors expected: %w[ - ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_available_filter_arg_spec.rb - ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_directly_mapped_filter_arg_spec.rb - ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/with_unmapped_filter_arg_spec.rb ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_available_filter_arg_spec.rb ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_directly_mapped_filter_arg_spec.rb ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/with_unmapped_filter_arg_spec.rb diff --git a/tests.yml b/tests.yml index 7ae149186adf4c37cd704891b0efbf55d0048584..b046768c84cb9a6c0199037508fbd29d87f7deb0 100644 --- a/tests.yml +++ b/tests.yml @@ -143,7 +143,6 @@ mapping: - source: 'ee/app/graphql/resolvers/remote_development/namespace/cluster_agents_resolver\.rb' test: - - 'ee/spec/requests/api/graphql/remote_development/namespace/remote_development_cluster_agents/*_spec.rb' - 'ee/spec/requests/api/graphql/remote_development/namespace/workspaces_cluster_agents/*_spec.rb' - source: 'ee/app/graphql/resolvers/remote_development/organization/cluster_agents_resolver\.rb'