summaryrefslogtreecommitdiff
path: root/spec/controllers/projects
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/projects')
-rw-r--r--spec/controllers/projects/issues_controller_spec.rb35
-rw-r--r--spec/controllers/projects/learn_gitlab_controller_spec.rb9
-rw-r--r--spec/controllers/projects/merge_requests/diffs_controller_spec.rb3
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb31
-rw-r--r--spec/controllers/projects/pipelines_controller_spec.rb25
-rw-r--r--spec/controllers/projects/project_members_controller_spec.rb1
-rw-r--r--spec/controllers/projects/repositories_controller_spec.rb2
-rw-r--r--spec/controllers/projects/serverless/functions_controller_spec.rb4
-rw-r--r--spec/controllers/projects/settings/ci_cd_controller_spec.rb11
9 files changed, 57 insertions, 64 deletions
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb
index 68cccfa8bde..763c3e43e27 100644
--- a/spec/controllers/projects/issues_controller_spec.rb
+++ b/spec/controllers/projects/issues_controller_spec.rb
@@ -201,32 +201,6 @@ RSpec.describe Projects::IssuesController do
expect(response).to have_gitlab_http_status(:ok)
expect(json_response['issue_email_participants']).to contain_exactly({ "email" => participants[0].email }, { "email" => participants[1].email })
end
-
- context 'with the invite_members_in_comment experiment', :experiment do
- context 'when user can invite' do
- before do
- stub_experiments(invite_members_in_comment: :invite_member_link)
- project.add_maintainer(user)
- end
-
- it 'assigns the candidate experience and tracks the event' do
- expect(experiment(:invite_members_in_comment)).to track(:view, property: project.root_ancestor.id.to_s)
- .for(:invite_member_link)
- .with_context(namespace: project.root_ancestor)
- .on_next_instance
-
- get :show, params: { namespace_id: project.namespace, project_id: project, id: issue.iid }
- end
- end
-
- context 'when user can not invite' do
- it 'does not track the event' do
- expect(experiment(:invite_members_in_comment)).not_to track(:view)
-
- get :show, params: { namespace_id: project.namespace, project_id: project, id: issue.iid }
- end
- end
- end
end
describe 'GET #new' do
@@ -1197,6 +1171,15 @@ RSpec.describe Projects::IssuesController do
end
end
+ context 'when trying to create a task' do
+ it 'defaults to issue type' do
+ issue = post_new_issue(issue_type: 'task')
+
+ expect(issue.issue_type).to eq('issue')
+ expect(issue.work_item_type.base_type).to eq('issue')
+ end
+ end
+
it 'creates the issue successfully', :aggregate_failures do
issue = post_new_issue
diff --git a/spec/controllers/projects/learn_gitlab_controller_spec.rb b/spec/controllers/projects/learn_gitlab_controller_spec.rb
index 620982f73be..2d00fcbccf3 100644
--- a/spec/controllers/projects/learn_gitlab_controller_spec.rb
+++ b/spec/controllers/projects/learn_gitlab_controller_spec.rb
@@ -5,14 +5,15 @@ require 'spec_helper'
RSpec.describe Projects::LearnGitlabController do
describe 'GET #index' do
let_it_be(:user) { create(:user) }
- let_it_be(:project) { create(:project, namespace: user.namespace) }
+ let_it_be(:project) { create(:project, namespace: create(:group)) }
let(:learn_gitlab_enabled) { true }
let(:params) { { namespace_id: project.namespace.to_param, project_id: project } }
- subject { get :index, params: params }
+ subject(:action) { get :index, params: params }
before do
+ project.namespace.add_owner(user)
allow(controller.helpers).to receive(:learn_gitlab_enabled?).and_return(learn_gitlab_enabled)
end
@@ -32,6 +33,10 @@ RSpec.describe Projects::LearnGitlabController do
it { is_expected.to have_gitlab_http_status(:not_found) }
end
+
+ it_behaves_like 'tracks assignment and records the subject', :invite_for_help_continuous_onboarding, :namespace do
+ subject { project.namespace }
+ end
end
end
end
diff --git a/spec/controllers/projects/merge_requests/diffs_controller_spec.rb b/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
index 5b1c6777523..f7370a1a1ac 100644
--- a/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests/diffs_controller_spec.rb
@@ -496,6 +496,7 @@ RSpec.describe Projects::MergeRequests::DiffsController do
{
environment: nil,
merge_request: merge_request,
+ commit: nil,
diff_view: :inline,
merge_ref_head_diff: nil,
allow_tree_conflicts: true,
@@ -552,7 +553,7 @@ RSpec.describe Projects::MergeRequests::DiffsController do
it_behaves_like 'serializes diffs with expected arguments' do
let(:collection) { Gitlab::Diff::FileCollection::Commit }
- let(:expected_options) { collection_arguments }
+ let(:expected_options) { collection_arguments.merge(commit: merge_request.commits(limit: 1).first) }
end
end
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index 46b332a8938..36b6df59ef5 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -42,32 +42,6 @@ RSpec.describe Projects::MergeRequestsController do
get :show, params: params.merge(extra_params)
end
- context 'with the invite_members_in_comment experiment', :experiment do
- context 'when user can invite' do
- before do
- stub_experiments(invite_members_in_comment: :invite_member_link)
- project.add_maintainer(user)
- end
-
- it 'assigns the candidate experience and tracks the event' do
- expect(experiment(:invite_members_in_comment)).to track(:view, property: project.root_ancestor.id.to_s)
- .for(:invite_member_link)
- .with_context(namespace: project.root_ancestor)
- .on_next_instance
-
- go
- end
- end
-
- context 'when user can not invite' do
- it 'does not track the event' do
- expect(experiment(:invite_members_in_comment)).not_to track(:view)
-
- go
- end
- end
- end
-
context 'with view param' do
before do
go(view: 'parallel')
@@ -367,7 +341,8 @@ RSpec.describe Projects::MergeRequestsController do
namespace_id: project.namespace,
project_id: project,
id: merge_request.iid,
- merge_request: mr_params
+ merge_request: mr_params,
+ serializer: 'basic'
}.merge(additional_params)
put :update, params: params
@@ -1377,7 +1352,7 @@ RSpec.describe Projects::MergeRequestsController do
'create' => 0,
'delete' => 0,
'update' => 1,
- 'job_name' => build.options.dig(:artifacts, :name).to_s
+ 'job_name' => build.name
)
)
)
diff --git a/spec/controllers/projects/pipelines_controller_spec.rb b/spec/controllers/projects/pipelines_controller_spec.rb
index 14c613ff9c4..3fe709a0d44 100644
--- a/spec/controllers/projects/pipelines_controller_spec.rb
+++ b/spec/controllers/projects/pipelines_controller_spec.rb
@@ -745,9 +745,28 @@ RSpec.describe Projects::PipelinesController do
describe 'GET #charts' do
let(:pipeline) { create(:ci_pipeline, project: project) }
- it_behaves_like 'tracking unique visits', :charts do
- let(:request_params) { { namespace_id: project.namespace, project_id: project, id: pipeline.id } }
- let(:target_id) { 'p_analytics_pipelines' }
+ [
+ {
+ chart_param: '',
+ event: 'p_analytics_ci_cd_pipelines'
+ },
+ {
+ chart_param: 'pipelines',
+ event: 'p_analytics_ci_cd_pipelines'
+ },
+ {
+ chart_param: 'deployment-frequency',
+ event: 'p_analytics_ci_cd_deployment_frequency'
+ },
+ {
+ chart_param: 'lead-time',
+ event: 'p_analytics_ci_cd_lead_time'
+ }
+ ].each do |tab|
+ it_behaves_like 'tracking unique visits', :charts do
+ let(:request_params) { { namespace_id: project.namespace, project_id: project, id: pipeline.id, chart: tab[:chart_param] } }
+ let(:target_id) { ['p_analytics_pipelines', tab[:event]] }
+ end
end
end
diff --git a/spec/controllers/projects/project_members_controller_spec.rb b/spec/controllers/projects/project_members_controller_spec.rb
index c352524ec14..d8ef95cf11a 100644
--- a/spec/controllers/projects/project_members_controller_spec.rb
+++ b/spec/controllers/projects/project_members_controller_spec.rb
@@ -369,7 +369,6 @@ RSpec.describe Projects::ProjectMembersController do
context 'when `expires_at` is set' do
it 'returns correct json response' do
expect(json_response).to eq({
- "expires_in" => "about 1 month",
"expires_soon" => false,
"expires_at_formatted" => expiry_date.to_time.in_time_zone.to_s(:medium)
})
diff --git a/spec/controllers/projects/repositories_controller_spec.rb b/spec/controllers/projects/repositories_controller_spec.rb
index cb2579b800a..b7eef3812a4 100644
--- a/spec/controllers/projects/repositories_controller_spec.rb
+++ b/spec/controllers/projects/repositories_controller_spec.rb
@@ -86,7 +86,7 @@ RSpec.describe Projects::RepositoriesController do
describe 'rate limiting' do
it 'rate limits user when thresholds hit' do
- expect(controller).to receive(:archive_rate_limit_reached?).and_return(true)
+ allow(Gitlab::ApplicationRateLimiter).to receive(:throttled?).and_return(true)
get :archive, params: { namespace_id: project.namespace, project_id: project, id: 'master' }, format: "html"
diff --git a/spec/controllers/projects/serverless/functions_controller_spec.rb b/spec/controllers/projects/serverless/functions_controller_spec.rb
index 75135839a06..860bbc1c5cc 100644
--- a/spec/controllers/projects/serverless/functions_controller_spec.rb
+++ b/spec/controllers/projects/serverless/functions_controller_spec.rb
@@ -128,7 +128,7 @@ RSpec.describe Projects::Serverless::FunctionsController do
expect(json_response["functions"]).to all(
include(
- 'url' => "https://#{function_name}-#{serverless_domain_cluster.uuid[0..1]}a1#{serverless_domain_cluster.uuid[2..-3]}f2#{serverless_domain_cluster.uuid[-2..-1]}#{"%x" % environment.id}-#{environment.slug}.#{serverless_domain_cluster.domain}"
+ 'url' => "https://#{function_name}-#{serverless_domain_cluster.uuid[0..1]}a1#{serverless_domain_cluster.uuid[2..-3]}f2#{serverless_domain_cluster.uuid[-2..]}#{"%x" % environment.id}-#{environment.slug}.#{serverless_domain_cluster.domain}"
)
)
end
@@ -166,7 +166,7 @@ RSpec.describe Projects::Serverless::FunctionsController do
expect(response).to have_gitlab_http_status(:ok)
expect(json_response).to include(
- 'url' => "https://#{function_name}-#{serverless_domain_cluster.uuid[0..1]}a1#{serverless_domain_cluster.uuid[2..-3]}f2#{serverless_domain_cluster.uuid[-2..-1]}#{"%x" % environment.id}-#{environment.slug}.#{serverless_domain_cluster.domain}"
+ 'url' => "https://#{function_name}-#{serverless_domain_cluster.uuid[0..1]}a1#{serverless_domain_cluster.uuid[2..-3]}f2#{serverless_domain_cluster.uuid[-2..]}#{"%x" % environment.id}-#{environment.slug}.#{serverless_domain_cluster.domain}"
)
end
diff --git a/spec/controllers/projects/settings/ci_cd_controller_spec.rb b/spec/controllers/projects/settings/ci_cd_controller_spec.rb
index dc7066f6b61..d50f1aa1dd8 100644
--- a/spec/controllers/projects/settings/ci_cd_controller_spec.rb
+++ b/spec/controllers/projects/settings/ci_cd_controller_spec.rb
@@ -25,6 +25,17 @@ RSpec.describe Projects::Settings::CiCdController do
expect(response).to render_template(:show)
end
+ context 'with CI/CD disabled' do
+ before do
+ project.project_feature.update_attribute(:builds_access_level, ProjectFeature::DISABLED)
+ end
+
+ it 'renders show with 404 status code' do
+ get :show, params: { namespace_id: project.namespace, project_id: project }
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+
context 'with group runners' do
let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group]) }
let_it_be(:project_runner) { create(:ci_runner, :project, projects: [other_project]) }