summaryrefslogtreecommitdiff
path: root/spec/requests/projects/google_cloud_controller_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-07-20 15:40:28 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-20 15:40:28 +0000
commitb595cb0c1dec83de5bdee18284abe86614bed33b (patch)
tree8c3d4540f193c5ff98019352f554e921b3a41a72 /spec/requests/projects/google_cloud_controller_spec.rb
parent2f9104a328fc8a4bddeaa4627b595166d24671d0 (diff)
downloadgitlab-ce-b595cb0c1dec83de5bdee18284abe86614bed33b.tar.gz
Add latest changes from gitlab-org/gitlab@15-2-stable-eev15.2.0-rc42
Diffstat (limited to 'spec/requests/projects/google_cloud_controller_spec.rb')
-rw-r--r--spec/requests/projects/google_cloud_controller_spec.rb178
1 files changed, 0 insertions, 178 deletions
diff --git a/spec/requests/projects/google_cloud_controller_spec.rb b/spec/requests/projects/google_cloud_controller_spec.rb
deleted file mode 100644
index d0814990989..00000000000
--- a/spec/requests/projects/google_cloud_controller_spec.rb
+++ /dev/null
@@ -1,178 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-# Mock Types
-MockGoogleOAuth2Credentials = Struct.new(:app_id, :app_secret)
-
-RSpec.describe Projects::GoogleCloudController do
- let_it_be(:project) { create(:project, :public) }
-
- describe 'GET index', :snowplow do
- let_it_be(:url) { "#{project_google_cloud_index_path(project)}" }
-
- context 'when a public request is made' do
- it 'returns not found' do
- get url
-
- expect(response).to have_gitlab_http_status(:not_found)
- expect_snowplow_event(
- category: 'Projects::GoogleCloud',
- action: 'admin_project_google_cloud!',
- label: 'access_denied',
- property: 'invalid_user',
- project: project,
- user: nil)
- end
- end
-
- context 'when a project.guest makes request' do
- let(:user) { create(:user) }
-
- it 'returns not found' do
- project.add_guest(user)
- sign_in(user)
-
- get url
-
- expect(response).to have_gitlab_http_status(:not_found)
- expect_snowplow_event(
- category: 'Projects::GoogleCloud',
- action: 'admin_project_google_cloud!',
- label: 'access_denied',
- property: 'invalid_user',
- project: project,
- user: user
- )
- end
- end
-
- context 'when project.developer makes request' do
- let(:user) { create(:user) }
-
- it 'returns not found' do
- project.add_developer(user)
- sign_in(user)
-
- get url
-
- expect(response).to have_gitlab_http_status(:not_found)
- expect_snowplow_event(
- category: 'Projects::GoogleCloud',
- action: 'admin_project_google_cloud!',
- label: 'access_denied',
- property: 'invalid_user',
- project: project,
- user: user
- )
- end
- end
-
- context 'when project.maintainer makes request' do
- let(:user) { create(:user) }
-
- it 'returns successful' do
- project.add_maintainer(user)
- sign_in(user)
-
- get url
-
- expect(response).to be_successful
- end
- end
-
- context 'when project.creator makes request' do
- let(:user) { project.creator }
-
- it 'returns successful' do
- sign_in(user)
-
- get url
-
- expect(response).to be_successful
- end
- end
-
- describe 'when authorized user makes request' do
- let(:user) { project.creator }
-
- context 'but gitlab instance is not configured for google oauth2' do
- it 'returns forbidden' do
- unconfigured_google_oauth2 = MockGoogleOAuth2Credentials.new('', '')
- allow(Gitlab::Auth::OAuth::Provider).to receive(:config_for)
- .with('google_oauth2')
- .and_return(unconfigured_google_oauth2)
-
- sign_in(user)
-
- get url
-
- expect(response).to have_gitlab_http_status(:forbidden)
- expect_snowplow_event(
- category: 'Projects::GoogleCloud',
- action: 'google_oauth2_enabled!',
- label: 'access_denied',
- extra: { reason: 'google_oauth2_not_configured',
- config: unconfigured_google_oauth2 },
- project: project,
- user: user
- )
- end
- end
-
- context 'but feature flag is disabled' do
- before do
- stub_feature_flags(incubation_5mp_google_cloud: false)
- end
-
- it 'returns not found' do
- sign_in(user)
-
- get url
-
- expect(response).to have_gitlab_http_status(:not_found)
- expect_snowplow_event(
- category: 'Projects::GoogleCloud',
- action: 'feature_flag_enabled!',
- label: 'access_denied',
- property: 'feature_flag_not_enabled',
- project: project,
- user: user
- )
- end
- end
-
- context 'but google oauth2 token is not valid' do
- it 'does not return revoke oauth url' do
- allow_next_instance_of(GoogleApi::CloudPlatform::Client) do |client|
- allow(client).to receive(:validate_token).and_return(false)
- end
-
- sign_in(user)
-
- get url
-
- expect(response).to be_successful
- expect_snowplow_event(
- category: 'Projects::GoogleCloud',
- action: 'google_cloud#index',
- label: 'index',
- extra: {
- screen: 'home',
- serviceAccounts: [],
- createServiceAccountUrl: project_google_cloud_service_accounts_path(project),
- enableCloudRunUrl: project_google_cloud_deployments_cloud_run_path(project),
- enableCloudStorageUrl: project_google_cloud_deployments_cloud_storage_path(project),
- emptyIllustrationUrl: ActionController::Base.helpers.image_path('illustrations/pipelines_empty.svg'),
- configureGcpRegionsUrl: project_google_cloud_gcp_regions_path(project),
- gcpRegions: [],
- revokeOauthUrl: nil
- },
- project: project,
- user: user
- )
- end
- end
- end
- end
-end