summaryrefslogtreecommitdiff
path: root/spec/controllers/projects_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/projects_controller_spec.rb')
-rw-r--r--spec/controllers/projects_controller_spec.rb91
1 files changed, 48 insertions, 43 deletions
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb
index 8aae9ef85be..e59493827ba 100644
--- a/spec/controllers/projects_controller_spec.rb
+++ b/spec/controllers/projects_controller_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe ProjectsController do
include ExternalAuthorizationServiceHelpers
include ProjectForksHelper
- let(:project) { create(:project) }
+ let(:project) { create(:project, service_desk_enabled: false) }
let(:public_project) { create(:project, :public) }
let(:user) { create(:user) }
let(:jpg) { fixture_file_upload('spec/fixtures/rails_sample.jpg', 'image/jpg') }
@@ -86,11 +86,13 @@ RSpec.describe ProjectsController do
end
describe "GET #activity as JSON" do
+ include DesignManagementTestHelpers
render_views
let(:project) { create(:project, :public, issues_access_level: ProjectFeature::PRIVATE) }
before do
+ enable_design_management
create(:event, :created, project: project, target: create(:issue))
sign_in(user)
@@ -103,11 +105,32 @@ RSpec.describe ProjectsController do
project.add_developer(user)
end
- it 'returns count' do
+ def get_activity(project)
get :activity, params: { namespace_id: project.namespace, id: project, format: :json }
+ end
+
+ it 'returns count' do
+ get_activity(project)
expect(json_response['count']).to eq(1)
end
+
+ context 'design events are visible' do
+ include DesignManagementTestHelpers
+ let(:other_project) { create(:project, namespace: user.namespace) }
+
+ before do
+ enable_design_management
+ create(:design_event, project: project)
+ request.cookies[:event_filter] = EventFilter::DESIGNS
+ end
+
+ it 'returns correct count' do
+ get_activity(project)
+
+ expect(json_response['count']).to eq(1)
+ end
+ end
end
context 'when user has no permission to see the event' do
@@ -350,45 +373,6 @@ RSpec.describe ProjectsController do
.not_to exceed_query_limit(2).for_query(expected_query)
end
end
-
- context 'lfs_blob_ids instance variable' do
- let(:project) { create(:project, :public, :repository) }
-
- before do
- sign_in(user)
- end
-
- context 'with vue tree view enabled' do
- before do
- get :show, params: { namespace_id: project.namespace, id: project }
- end
-
- it 'is not set' do
- expect(assigns[:lfs_blob_ids]).to be_nil
- end
- end
-
- context 'with vue tree view disabled' do
- before do
- stub_feature_flags(vue_file_list: false)
-
- get :show, params: { namespace_id: project.namespace, id: project }
- end
-
- it 'is set' do
- expect(assigns[:lfs_blob_ids]).not_to be_nil
- end
- end
- end
-
- context 'namespace storage limit' do
- let_it_be(:project) { create(:project, :public, :repository ) }
- let(:namespace) { project.namespace }
-
- subject { get :show, params: { namespace_id: namespace, id: project } }
-
- it_behaves_like 'namespace storage limit alert'
- end
end
describe 'GET edit' do
@@ -1192,7 +1176,7 @@ RSpec.describe ProjectsController do
before do
allow(Gitlab::ApplicationRateLimiter)
.to receive(:increment)
- .and_return(Gitlab::ApplicationRateLimiter.rate_limits["project_#{action}".to_sym][:threshold] + 1)
+ .and_return(Gitlab::ApplicationRateLimiter.rate_limits["project_#{action}".to_sym][:threshold].call + 1)
end
it 'prevents requesting project export' do
@@ -1259,7 +1243,7 @@ RSpec.describe ProjectsController do
before do
allow(Gitlab::ApplicationRateLimiter)
.to receive(:increment)
- .and_return(Gitlab::ApplicationRateLimiter.rate_limits[:project_download_export][:threshold] + 1)
+ .and_return(Gitlab::ApplicationRateLimiter.rate_limits[:project_download_export][:threshold].call + 1)
end
it 'prevents requesting project export' do
@@ -1400,6 +1384,27 @@ RSpec.describe ProjectsController do
end
end
+ it 'updates Service Desk attributes' do
+ project.add_maintainer(user)
+ sign_in(user)
+ allow(Gitlab::IncomingEmail).to receive(:enabled?) { true }
+ allow(Gitlab::IncomingEmail).to receive(:supports_wildcard?) { true }
+ params = {
+ service_desk_enabled: true
+ }
+
+ put :update,
+ params: {
+ namespace_id: project.namespace,
+ id: project,
+ project: params
+ }
+ project.reload
+
+ expect(response).to have_gitlab_http_status(:found)
+ expect(project.service_desk_enabled).to eq(true)
+ end
+
def project_moved_message(redirect_route, project)
"Project '#{redirect_route.path}' was moved to '#{project.full_path}'. Please update any links and bookmarks that may still have the old path."
end