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/projects/prometheus/alerts_controller_spec.rb')
-rw-r--r--spec/controllers/projects/prometheus/alerts_controller_spec.rb110
1 files changed, 0 insertions, 110 deletions
diff --git a/spec/controllers/projects/prometheus/alerts_controller_spec.rb b/spec/controllers/projects/prometheus/alerts_controller_spec.rb
deleted file mode 100644
index 3e64631fbf1..00000000000
--- a/spec/controllers/projects/prometheus/alerts_controller_spec.rb
+++ /dev/null
@@ -1,110 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Projects::Prometheus::AlertsController, feature_category: :incident_management do
- let_it_be(:user) { create(:user) }
- let_it_be(:project) { create(:project) }
- let_it_be(:environment) { create(:environment, project: project) }
-
- before do
- project.add_maintainer(user)
- sign_in(user)
- end
-
- shared_examples 'unprivileged' do
- before do
- project.add_developer(user)
- end
-
- it 'returns not_found' do
- make_request
-
- expect(response).to have_gitlab_http_status(:not_found)
- end
- end
-
- shared_examples 'project non-specific environment' do |status|
- let(:other) { create(:environment) }
-
- it "returns #{status}" do
- make_request(environment_id: other)
-
- expect(response).to have_gitlab_http_status(status)
- end
-
- if status == :ok
- it 'returns no prometheus alerts' do
- make_request(environment_id: other)
-
- expect(json_response).to be_empty
- end
- end
- end
-
- describe 'POST #notify' do
- let(:alert_1) { build(:alert_management_alert, :prometheus, project: project) }
- let(:alert_2) { build(:alert_management_alert, :prometheus, project: project) }
- let(:service_response) { ServiceResponse.success(http_status: :created) }
- let(:notify_service) { instance_double(Projects::Prometheus::Alerts::NotifyService, execute: service_response) }
-
- before do
- sign_out(user)
-
- expect(Projects::Prometheus::Alerts::NotifyService)
- .to receive(:new)
- .with(project, duck_type(:permitted?))
- .and_return(notify_service)
- end
-
- it 'returns created if notification succeeds' do
- expect(notify_service).to receive(:execute).and_return(service_response)
-
- post :notify, params: project_params, session: { as: :json }
-
- expect(response).to have_gitlab_http_status(:created)
- end
-
- it 'returns unprocessable entity if notification fails' do
- expect(notify_service).to receive(:execute).and_return(
- ServiceResponse.error(message: 'Unprocessable Entity', http_status: :unprocessable_entity)
- )
-
- post :notify, params: project_params, session: { as: :json }
-
- expect(response).to have_gitlab_http_status(:unprocessable_entity)
- end
-
- context 'bearer token' do
- context 'when set' do
- it 'extracts bearer token' do
- request.headers['HTTP_AUTHORIZATION'] = 'Bearer some token'
-
- expect(notify_service).to receive(:execute).with('some token')
-
- post :notify, params: project_params, as: :json
- end
-
- it 'pass nil if cannot extract a non-bearer token' do
- request.headers['HTTP_AUTHORIZATION'] = 'some token'
-
- expect(notify_service).to receive(:execute).with(nil)
-
- post :notify, params: project_params, as: :json
- end
- end
-
- context 'when missing' do
- it 'passes nil' do
- expect(notify_service).to receive(:execute).with(nil)
-
- post :notify, params: project_params, as: :json
- end
- end
- end
- end
-
- def project_params(opts = {})
- opts.reverse_merge(namespace_id: project.namespace, project_id: project)
- end
-end