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/autocomplete_sources_controller_spec.rb')
-rw-r--r--spec/controllers/projects/autocomplete_sources_controller_spec.rb60
1 files changed, 59 insertions, 1 deletions
diff --git a/spec/controllers/projects/autocomplete_sources_controller_spec.rb b/spec/controllers/projects/autocomplete_sources_controller_spec.rb
index 865b31a28d7..79edc261809 100644
--- a/spec/controllers/projects/autocomplete_sources_controller_spec.rb
+++ b/spec/controllers/projects/autocomplete_sources_controller_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe Projects::AutocompleteSourcesController do
- let_it_be(:group) { create(:group) }
+ let_it_be(:group, reload: true) { create(:group) }
let_it_be(:project) { create(:project, namespace: group) }
let_it_be(:issue) { create(:issue, project: project) }
let_it_be(:user) { create(:user) }
@@ -69,4 +69,62 @@ RSpec.describe Projects::AutocompleteSourcesController do
end
end
end
+
+ describe 'GET contacts' do
+ let_it_be(:contact_1) { create(:contact, group: group) }
+ let_it_be(:contact_2) { create(:contact, group: group) }
+
+ before do
+ sign_in(user)
+ end
+
+ context 'when feature flag is enabled' do
+ context 'when a group has contact relations enabled' do
+ before do
+ create(:crm_settings, group: group, enabled: true)
+ end
+
+ context 'when a user can read contacts' do
+ it 'lists contacts' do
+ group.add_developer(user)
+
+ get :contacts, format: :json, params: { namespace_id: group.path, project_id: project.path }
+
+ emails = json_response.map { |contact_data| contact_data["email"] }
+ expect(emails).to match_array([contact_1.email, contact_2.email])
+ end
+ end
+
+ context 'when a user can not read contacts' do
+ it 'renders 404' do
+ get :contacts, format: :json, params: { namespace_id: group.path, project_id: project.path }
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+
+ context 'when a group has contact relations disabled' do
+ it 'renders 404' do
+ group.add_developer(user)
+
+ get :contacts, format: :json, params: { namespace_id: group.path, project_id: project.path }
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+
+ context 'when feature flag is disabled' do
+ before do
+ stub_feature_flags(customer_relations: false)
+ end
+
+ it 'renders 404' do
+ get :contacts, format: :json, params: { namespace_id: group.path, project_id: project.path }
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
end