summaryrefslogtreecommitdiff
path: root/spec/services/error_tracking/list_projects_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/error_tracking/list_projects_service_spec.rb')
-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