summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrpereira2 <rpereira@gitlab.com>2019-02-06 18:45:25 +0530
committerrpereira2 <rpereira@gitlab.com>2019-02-06 18:45:25 +0530
commit904403f8e45394e3991066c0a12db9949ce65628 (patch)
tree77d61907b4f8b21150a7ef3cf45063468480f9f5
parentb080d7dcad8a73d6e33757e5f6367aa33edb6fcd (diff)
parent5d61a7dee4b47a08c549717d43b0b0cff146cb22 (diff)
downloadgitlab-ce-55199-error-tracking-project-selection.tar.gz
Merge remote-tracking branch55199-error-tracking-project-selection
'origin/55199-list-projects-service' into 55199-error-tracking-project-selection
-rw-r--r--spec/services/error_tracking/list_projects_service_spec.rb31
1 files changed, 17 insertions, 14 deletions
diff --git a/spec/services/error_tracking/list_projects_service_spec.rb b/spec/services/error_tracking/list_projects_service_spec.rb
index 2ae3b1a65ec..6204ca87576 100644
--- a/spec/services/error_tracking/list_projects_service_spec.rb
+++ b/spec/services/error_tracking/list_projects_service_spec.rb
@@ -3,8 +3,6 @@
require 'spec_helper'
describe ErrorTracking::ListProjectsService do
- include ReactiveCachingHelpers
-
set(:user) { create(:user) }
set(:project) { create(:project) }
@@ -28,26 +26,24 @@ describe ErrorTracking::ListProjectsService do
let(:result) { subject.execute }
context 'with authorized user' do
- let(:sentry_client) { spy(:sentry_client) }
-
before do
expect(project).to receive(:error_tracking_setting).at_least(:once)
.and_return(error_tracking_setting)
end
- context 'call sentry client' do
+ context 'set model attributes to new values' do
+ let(:new_api_url) { new_api_host + 'api/0/projects/' }
+
before do
- synchronous_reactive_cache(error_tracking_setting)
+ expect(error_tracking_setting).to receive(:list_sentry_projects)
+ .and_return({ projects: [] })
end
it 'uses new api_url and token' do
- expect(Sentry::Client).to receive(:new)
- .with(new_api_host + 'api/0/projects/', new_token)
- .and_return(sentry_client)
- expect(sentry_client).to receive(:list_projects).and_return([])
-
subject.execute
+ expect(error_tracking_setting.api_url).to eq(new_api_url)
+ expect(error_tracking_setting.token).to eq(new_token)
error_tracking_setting.reload
expect(error_tracking_setting.api_url).to eq(sentry_url)
expect(error_tracking_setting.token).to eq(token)
@@ -150,11 +146,9 @@ describe ErrorTracking::ListProjectsService do
context 'error_tracking_setting is nil' do
let(:error_tracking_setting) { build(:project_error_tracking_setting) }
+ let(:new_api_url) { new_api_host + 'api/0/projects/' }
before do
- expect(project).to receive(:error_tracking_setting).at_least(:once)
- .and_return(nil)
-
expect(project).to receive(:build_error_tracking_setting).once
.and_return(error_tracking_setting)
@@ -163,7 +157,16 @@ describe ErrorTracking::ListProjectsService do
end
it 'builds a new error_tracking_setting' do
+ expect(project.error_tracking_setting).to be_nil
+
expect(result[:projects]).to eq([:project1, :project2])
+
+ expect(error_tracking_setting.api_url).to eq(new_api_url)
+ expect(error_tracking_setting.token).to eq(new_token)
+ expect(error_tracking_setting.enabled).to be true
+ expect(error_tracking_setting.persisted?).to be false
+ expect(error_tracking_setting.project_id).not_to be_nil
+
expect(project.error_tracking_setting).to be_nil
end
end