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/requests/api/error_tracking/project_settings_spec.rb')
-rw-r--r--spec/requests/api/error_tracking/project_settings_spec.rb60
1 files changed, 21 insertions, 39 deletions
diff --git a/spec/requests/api/error_tracking/project_settings_spec.rb b/spec/requests/api/error_tracking/project_settings_spec.rb
index bde90627983..93ad0233ca3 100644
--- a/spec/requests/api/error_tracking/project_settings_spec.rb
+++ b/spec/requests/api/error_tracking/project_settings_spec.rb
@@ -3,10 +3,20 @@
require 'spec_helper'
RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tracking do
- let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project) }
let_it_be(:setting) { create(:project_error_tracking_setting, project: project) }
let_it_be(:project_without_setting) { create(:project) }
+ let_it_be(:developer) { create(:user) }
+ let_it_be(:maintainer) { create(:user) }
+ let_it_be(:non_member) { create(:user) }
+ let(:user) { maintainer }
+
+ before_all do
+ project.add_developer(developer)
+ project.add_maintainer(maintainer)
+ project_without_setting.add_developer(developer)
+ project_without_setting.add_maintainer(maintainer)
+ end
shared_examples 'returns project settings' do
it 'returns correct project settings' do
@@ -108,10 +118,6 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra
end
context 'when authenticated as maintainer' do
- before do
- project.add_maintainer(user)
- end
-
context 'with integrated_error_tracking feature enabled' do
it_behaves_like 'returns project settings'
end
@@ -179,10 +185,6 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra
context 'without a project setting' do
let(:project) { project_without_setting }
- before do
- project.add_maintainer(user)
- end
-
it_behaves_like 'returns no project settings'
end
@@ -208,14 +210,14 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra
end
context 'when authenticated as developer' do
- before do
- project.add_developer(user)
- end
+ let(:user) { developer }
it_behaves_like 'returns 403'
end
context 'when authenticated as non-member' do
+ let(:user) { non_member }
+
it_behaves_like 'returns 404'
end
@@ -232,10 +234,6 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra
end
context 'when authenticated as maintainer' do
- before do
- project.add_maintainer(user)
- end
-
it_behaves_like 'returns project settings'
context 'when integrated_error_tracking feature disabled' do
@@ -250,22 +248,18 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra
context 'without a project setting' do
let(:project) { project_without_setting }
- before do
- project.add_maintainer(user)
- end
-
it_behaves_like 'returns no project settings'
end
context 'when authenticated as developer' do
- before do
- project.add_developer(user)
- end
+ let(:user) { developer }
it_behaves_like 'returns 403'
end
context 'when authenticated as non-member' do
+ let(:user) { non_member }
+
it_behaves_like 'returns 404'
end
@@ -287,14 +281,8 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra
context 'when authenticated' do
context 'as maintainer' do
- before do
- project.add_maintainer(user)
- end
-
context "when integrated" do
context "with existing setting" do
- let(:project) { setting.project }
- let(:setting) { create(:project_error_tracking_setting, :integrated) }
let(:active) { false }
it "updates a setting" do
@@ -302,13 +290,7 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra
expect(response).to have_gitlab_http_status(:ok)
- expect(json_response).to eq(
- "active" => false,
- "api_url" => nil,
- "integrated" => integrated,
- "project_name" => nil,
- "sentry_external_url" => nil
- )
+ expect(json_response).to include("integrated" => true)
end
end
@@ -366,14 +348,14 @@ RSpec.describe API::ErrorTracking::ProjectSettings, feature_category: :error_tra
end
context "as developer" do
- before do
- project.add_developer(user)
- end
+ let(:user) { developer }
it_behaves_like 'returns 403'
end
context 'as non-member' do
+ let(:user) { non_member }
+
it_behaves_like 'returns 404'
end
end