Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/admin/clusters_controller_spec.rb28
-rw-r--r--spec/controllers/groups/clusters_controller_spec.rb33
-rw-r--r--spec/controllers/projects/clusters_controller_spec.rb33
-rw-r--r--spec/controllers/projects/deploy_keys_controller_spec.rb26
-rw-r--r--spec/controllers/projects/error_tracking_controller_spec.rb21
5 files changed, 51 insertions, 90 deletions
diff --git a/spec/controllers/admin/clusters_controller_spec.rb b/spec/controllers/admin/clusters_controller_spec.rb
index 4184c7e611a..f27519496df 100644
--- a/spec/controllers/admin/clusters_controller_spec.rb
+++ b/spec/controllers/admin/clusters_controller_spec.rb
@@ -381,10 +381,15 @@ describe Admin::ClustersController do
post :authorize_aws_role, params: params
end
+ before do
+ allow(Clusters::Aws::FetchCredentialsService).to receive(:new)
+ .and_return(double(execute: double))
+ end
+
it 'creates an Aws::Role record' do
expect { go }.to change { Aws::Role.count }
- expect(response.status).to eq 201
+ expect(response.status).to eq 200
role = Aws::Role.last
expect(role.user).to eq admin
@@ -409,27 +414,6 @@ describe Admin::ClustersController do
end
end
- describe 'DELETE revoke AWS role for EKS cluster' do
- let!(:role) { create(:aws_role, user: admin) }
-
- def go
- delete :revoke_aws_role
- end
-
- it 'deletes the Aws::Role record' do
- expect { go }.to change { Aws::Role.count }
-
- expect(response.status).to eq 204
- expect(admin.reload_aws_role).to be_nil
- end
-
- describe 'security' do
- it { expect { go }.to be_allowed_for(:admin) }
- it { expect { go }.to be_denied_for(:user) }
- it { expect { go }.to be_denied_for(:external) }
- end
- end
-
describe 'DELETE clear cluster cache' do
let(:cluster) { create(:cluster, :instance) }
let!(:kubernetes_namespace) do
diff --git a/spec/controllers/groups/clusters_controller_spec.rb b/spec/controllers/groups/clusters_controller_spec.rb
index d47122f051e..cf90d388a61 100644
--- a/spec/controllers/groups/clusters_controller_spec.rb
+++ b/spec/controllers/groups/clusters_controller_spec.rb
@@ -443,10 +443,15 @@ describe Groups::ClustersController do
post :authorize_aws_role, params: params.merge(group_id: group)
end
+ before do
+ allow(Clusters::Aws::FetchCredentialsService).to receive(:new)
+ .and_return(double(execute: double))
+ end
+
it 'creates an Aws::Role record' do
expect { go }.to change { Aws::Role.count }
- expect(response.status).to eq 201
+ expect(response.status).to eq 200
role = Aws::Role.last
expect(role.user).to eq user
@@ -476,32 +481,6 @@ describe Groups::ClustersController do
end
end
- describe 'DELETE revoke AWS role for EKS cluster' do
- let!(:role) { create(:aws_role, user: user) }
-
- def go
- delete :revoke_aws_role, params: { group_id: group }
- end
-
- it 'deletes the Aws::Role record' do
- expect { go }.to change { Aws::Role.count }
-
- expect(response.status).to eq 204
- expect(user.reload_aws_role).to be_nil
- end
-
- describe 'security' do
- it { expect { go }.to be_allowed_for(:admin) }
- it { expect { go }.to be_allowed_for(:owner).of(group) }
- it { expect { go }.to be_allowed_for(:maintainer).of(group) }
- it { expect { go }.to be_denied_for(:developer).of(group) }
- it { expect { go }.to be_denied_for(:reporter).of(group) }
- it { expect { go }.to be_denied_for(:guest).of(group) }
- it { expect { go }.to be_denied_for(:user) }
- it { expect { go }.to be_denied_for(:external) }
- end
- end
-
describe 'DELETE clear cluster cache' do
let(:cluster) { create(:cluster, :group, groups: [group]) }
let!(:kubernetes_namespace) do
diff --git a/spec/controllers/projects/clusters_controller_spec.rb b/spec/controllers/projects/clusters_controller_spec.rb
index 5efac44615f..ab8bfc0cabe 100644
--- a/spec/controllers/projects/clusters_controller_spec.rb
+++ b/spec/controllers/projects/clusters_controller_spec.rb
@@ -444,10 +444,15 @@ describe Projects::ClustersController do
post :authorize_aws_role, params: params.merge(namespace_id: project.namespace, project_id: project)
end
+ before do
+ allow(Clusters::Aws::FetchCredentialsService).to receive(:new)
+ .and_return(double(execute: double))
+ end
+
it 'creates an Aws::Role record' do
expect { go }.to change { Aws::Role.count }
- expect(response.status).to eq 201
+ expect(response.status).to eq 200
role = Aws::Role.last
expect(role.user).to eq user
@@ -477,32 +482,6 @@ describe Projects::ClustersController do
end
end
- describe 'DELETE revoke AWS role for EKS cluster' do
- let!(:role) { create(:aws_role, user: user) }
-
- def go
- delete :revoke_aws_role, params: { namespace_id: project.namespace, project_id: project }
- end
-
- it 'deletes the Aws::Role record' do
- expect { go }.to change { Aws::Role.count }
-
- expect(response.status).to eq 204
- expect(user.reload_aws_role).to be_nil
- end
-
- describe 'security' do
- it { expect { go }.to be_allowed_for(:admin) }
- it { expect { go }.to be_allowed_for(:owner).of(project) }
- it { expect { go }.to be_allowed_for(:maintainer).of(project) }
- it { expect { go }.to be_denied_for(:developer).of(project) }
- it { expect { go }.to be_denied_for(:reporter).of(project) }
- it { expect { go }.to be_denied_for(:guest).of(project) }
- it { expect { go }.to be_denied_for(:user) }
- it { expect { go }.to be_denied_for(:external) }
- end
- end
-
describe 'DELETE clear cluster cache' do
let(:cluster) { create(:cluster, :project, projects: [project]) }
let!(:kubernetes_namespace) { create(:cluster_kubernetes_namespace, cluster: cluster) }
diff --git a/spec/controllers/projects/deploy_keys_controller_spec.rb b/spec/controllers/projects/deploy_keys_controller_spec.rb
index 8b1ca2efab2..2c7c99eabf6 100644
--- a/spec/controllers/projects/deploy_keys_controller_spec.rb
+++ b/spec/controllers/projects/deploy_keys_controller_spec.rb
@@ -46,17 +46,27 @@ describe Projects::DeployKeysController do
create(:deploy_keys_project, project: project_private, deploy_key: create(:another_deploy_key))
end
- before do
- project2.add_developer(user)
+ context 'when user has access to all projects where deploy keys are used' do
+ before do
+ project2.add_developer(user)
+ end
+
+ it 'returns json in a correct format' do
+ get :index, params: params.merge(format: :json)
+
+ expect(json_response.keys).to match_array(%w(enabled_keys available_project_keys public_keys))
+ expect(json_response['enabled_keys'].count).to eq(1)
+ expect(json_response['available_project_keys'].count).to eq(1)
+ expect(json_response['public_keys'].count).to eq(1)
+ end
end
- it 'returns json in a correct format' do
- get :index, params: params.merge(format: :json)
+ context 'when user has no access to all projects where deploy keys are used' do
+ it 'returns json in a correct format' do
+ get :index, params: params.merge(format: :json)
- expect(json_response.keys).to match_array(%w(enabled_keys available_project_keys public_keys))
- expect(json_response['enabled_keys'].count).to eq(1)
- expect(json_response['available_project_keys'].count).to eq(1)
- expect(json_response['public_keys'].count).to eq(1)
+ expect(json_response['available_project_keys'].count).to eq(0)
+ end
end
end
end
diff --git a/spec/controllers/projects/error_tracking_controller_spec.rb b/spec/controllers/projects/error_tracking_controller_spec.rb
index ab99e44e4ca..e5585d7b52d 100644
--- a/spec/controllers/projects/error_tracking_controller_spec.rb
+++ b/spec/controllers/projects/error_tracking_controller_spec.rb
@@ -384,6 +384,10 @@ describe Projects::ErrorTrackingController do
).permit!
end
+ subject(:get_stack_trace) do
+ get :stack_trace, params: issue_params(issue_id: issue_id, format: :json)
+ end
+
before do
expect(ErrorTracking::IssueLatestEventService)
.to receive(:new).with(project, user, permitted_params)
@@ -398,7 +402,7 @@ describe Projects::ErrorTrackingController do
end
it 'returns no data' do
- get :stack_trace, params: issue_params(issue_id: issue_id, format: :json)
+ get_stack_trace
expect(response).to have_gitlab_http_status(:no_content)
end
@@ -408,16 +412,21 @@ describe Projects::ErrorTrackingController do
before do
expect(issue_stack_trace_service).to receive(:execute)
.and_return(status: :success, latest_event: error_event)
+
+ get_stack_trace
end
let(:error_event) { build(:error_tracking_error_event) }
it 'returns an error' do
- get :stack_trace, params: issue_params(issue_id: issue_id, format: :json)
-
expect(response).to have_gitlab_http_status(:ok)
expect(response).to match_response_schema('error_tracking/issue_stack_trace')
- expect(json_response['error']).to eq(error_event.as_json)
+ end
+
+ it 'highlights stack trace source code' do
+ expect(json_response['error']).to eq(
+ Gitlab::ErrorTracking::StackTraceHighlightDecorator.decorate(error_event).as_json
+ )
end
end
@@ -431,7 +440,7 @@ describe Projects::ErrorTrackingController do
end
it 'returns 400 with message' do
- get :stack_trace, params: issue_params(issue_id: issue_id, format: :json)
+ get_stack_trace
expect(response).to have_gitlab_http_status(:bad_request)
expect(json_response['message']).to eq(error_message)
@@ -450,7 +459,7 @@ describe Projects::ErrorTrackingController do
end
it 'returns http_status with message' do
- get :stack_trace, params: issue_params(issue_id: issue_id, format: :json)
+ get_stack_trace
expect(response).to have_gitlab_http_status(http_status)
expect(json_response['message']).to eq(error_message)