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/error_tracking')
-rw-r--r--spec/controllers/projects/error_tracking/projects_controller_spec.rb31
-rw-r--r--spec/controllers/projects/error_tracking/stack_traces_controller_spec.rb37
2 files changed, 30 insertions, 38 deletions
diff --git a/spec/controllers/projects/error_tracking/projects_controller_spec.rb b/spec/controllers/projects/error_tracking/projects_controller_spec.rb
index 67947d1c9d9..7529c701b2b 100644
--- a/spec/controllers/projects/error_tracking/projects_controller_spec.rb
+++ b/spec/controllers/projects/error_tracking/projects_controller_spec.rb
@@ -6,18 +6,21 @@ RSpec.describe Projects::ErrorTracking::ProjectsController do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user) }
+ before_all do
+ project.add_maintainer(user)
+ end
+
before do
sign_in(user)
- project.add_maintainer(user)
end
describe 'GET #index' do
context 'with insufficient permissions' do
- before do
- project.add_guest(user)
- end
+ let(:user) { create(:user) }
it 'returns 404' do
+ project.add_guest(user)
+
get :index, params: list_projects_params
expect(response).to have_gitlab_http_status(:not_found)
@@ -37,8 +40,8 @@ RSpec.describe Projects::ErrorTracking::ProjectsController do
end
context 'with authorized user' do
- let(:list_projects_service) { spy(:list_projects_service) }
- let(:sentry_project) { build(:error_tracking_project) }
+ let(:list_projects_service) { instance_double('ErrorTracking::ListProjectsService') }
+ let(:sentry_project) { build_stubbed(:error_tracking_project) }
let(:query_params) do
list_projects_params.slice(:api_host, :token)
@@ -50,9 +53,9 @@ RSpec.describe Projects::ErrorTracking::ProjectsController do
.and_return(list_projects_service)
end
- context 'service result is successful' do
+ context 'when service result is successful' do
before do
- expect(list_projects_service).to receive(:execute)
+ allow(list_projects_service).to receive(:execute)
.and_return(status: :success, projects: [sentry_project])
end
@@ -65,12 +68,12 @@ RSpec.describe Projects::ErrorTracking::ProjectsController do
end
end
- context 'service result is erroneous' do
+ context 'with service result is erroneous' do
let(:error_message) { 'error message' }
context 'without http_status' do
before do
- expect(list_projects_service).to receive(:execute)
+ allow(list_projects_service).to receive(:execute)
.and_return(status: :error, message: error_message)
end
@@ -86,7 +89,7 @@ RSpec.describe Projects::ErrorTracking::ProjectsController do
let(:http_status) { :no_content }
before do
- expect(list_projects_service).to receive(:execute).and_return(
+ allow(list_projects_service).to receive(:execute).and_return(
status: :error,
message: error_message,
http_status: http_status
@@ -106,11 +109,7 @@ RSpec.describe Projects::ErrorTracking::ProjectsController do
private
def list_projects_params(opts = {})
- project_params(
- format: :json,
- api_host: 'gitlab.com',
- token: 'token'
- )
+ project_params(format: :json, api_host: 'gitlab.com', token: 'token')
end
end
diff --git a/spec/controllers/projects/error_tracking/stack_traces_controller_spec.rb b/spec/controllers/projects/error_tracking/stack_traces_controller_spec.rb
index 19b6b597a84..e011428adde 100644
--- a/spec/controllers/projects/error_tracking/stack_traces_controller_spec.rb
+++ b/spec/controllers/projects/error_tracking/stack_traces_controller_spec.rb
@@ -6,30 +6,34 @@ RSpec.describe Projects::ErrorTracking::StackTracesController do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user) }
+ before_all do
+ project.add_maintainer(user)
+ end
+
before do
sign_in(user)
- project.add_maintainer(user)
end
describe 'GET #index' do
let(:issue_id) { non_existing_record_id }
- let(:issue_stack_trace_service) { spy(:issue_stack_trace_service) }
+ let(:issue_latest_event_service) { instance_double('ErrorTracking::IssueLatestEventService') }
subject(:get_stack_trace) do
get :index, params: { namespace_id: project.namespace, project_id: project, issue_id: issue_id, format: :json }
end
before do
- expect(ErrorTracking::IssueLatestEventService)
+ allow(ErrorTracking::IssueLatestEventService)
.to receive(:new).with(project, user, issue_id: issue_id.to_s)
- .and_return(issue_stack_trace_service)
- expect(issue_stack_trace_service).to receive(:execute).and_return(service_response)
+ .and_return(issue_latest_event_service)
+
+ allow(issue_latest_event_service).to receive(:execute).and_return(service_response)
get_stack_trace
end
- context 'awaiting data' do
- let(:service_response) { { status: :error, http_status: :no_content }}
+ context 'when awaiting data' do
+ let(:service_response) { { status: :error, http_status: :no_content } }
it 'responds with no data' do
expect(response).to have_gitlab_http_status(:no_content)
@@ -38,19 +42,14 @@ RSpec.describe Projects::ErrorTracking::StackTracesController do
it_behaves_like 'sets the polling header'
end
- context 'service result is successful' do
+ context 'when service result is successful' do
let(:service_response) { { status: :success, latest_event: error_event } }
- let(:error_event) { build(:error_tracking_sentry_error_event) }
+ let(:error_event) { build_stubbed(:error_tracking_sentry_error_event) }
- it 'responds with success' do
+ it 'highlights stack trace source code' do
expect(response).to have_gitlab_http_status(:ok)
- end
-
- it 'responds with error' do
expect(response).to match_response_schema('error_tracking/issue_stack_trace')
- end
- it 'highlights stack trace source code' do
expect(json_response['error']).to eq(
Gitlab::ErrorTracking::StackTraceHighlightDecorator.decorate(error_event).as_json
)
@@ -59,7 +58,7 @@ RSpec.describe Projects::ErrorTracking::StackTracesController do
it_behaves_like 'sets the polling header'
end
- context 'service result is erroneous' do
+ context 'when service result is erroneous' do
let(:error_message) { 'error message' }
context 'without http_status' do
@@ -67,9 +66,6 @@ RSpec.describe Projects::ErrorTracking::StackTracesController do
it 'responds with bad request' do
expect(response).to have_gitlab_http_status(:bad_request)
- end
-
- it 'responds with error message' do
expect(json_response['message']).to eq(error_message)
end
end
@@ -80,9 +76,6 @@ RSpec.describe Projects::ErrorTracking::StackTracesController do
it 'responds with custom http status' do
expect(response).to have_gitlab_http_status(http_status)
- end
-
- it 'responds with error message' do
expect(json_response['message']).to eq(error_message)
end
end