Commit 79c2fc75 authored by Shinya Maeda's avatar Shinya Maeda

Merge branch...

Merge branch '213052-mr-prompts-to-create-gitlab-ci-yml-even-if-the-project-has-already-had-it' into 'master'

Resolve "MR prompts to create .gitlab-ci.yml even if the project has already had it"

Closes #213052

See merge request gitlab-org/gitlab!28563
parents 8629e93a 3c879350
......@@ -96,7 +96,7 @@ class MergeRequestWidgetEntity < Grape::Entity
def can_add_ci_config_path?(merge_request)
merge_request.source_project&.uses_default_ci_config? &&
merge_request.all_pipelines.none? &&
!merge_request.source_project.has_ci? &&
merge_request.commits_count.positive? &&
can?(current_user, :read_build, merge_request.source_project) &&
can?(current_user, :create_pipeline, merge_request.source_project)
......
......@@ -5,9 +5,9 @@ require 'spec_helper'
describe MergeRequestWidgetEntity do
include ProjectForksHelper
let(:project) { create :project, :repository }
let(:project) { create :project, :repository }
let(:resource) { create(:merge_request, source_project: project, target_project: project) }
let(:user) { create(:user) }
let(:user) { create(:user) }
let(:request) { double('request', current_user: user, project: project) }
......@@ -54,15 +54,17 @@ describe MergeRequestWidgetEntity do
end
describe 'merge_request_add_ci_config_path' do
let!(:project_auto_devops) { create(:project_auto_devops, :disabled, project: project) }
before do
project.add_role(user, role)
end
context 'when there are pipelines' do
context 'when there is a standard ci config file in the source project' do
let(:role) { :developer }
before do
create(:ci_empty_pipeline, project: project, sha: resource.all_commit_shas.first, ref: resource.source_branch)
project.repository.create_file(user, Gitlab::FileDetector::PATTERNS[:gitlab_ci], 'CONTENT', message: 'Add .gitlab-ci.yml', branch_name: 'master')
end
it 'no ci config path' do
......@@ -70,7 +72,7 @@ describe MergeRequestWidgetEntity do
end
end
context 'when there are no pipelines' do
context 'when there is no standard ci config file in the source project' do
context 'when user has permissions' do
let(:role) { :developer }
......@@ -80,6 +82,16 @@ describe MergeRequestWidgetEntity do
expect(subject[:merge_request_add_ci_config_path]).to eq(expected_path)
end
context 'when auto devops is enabled' do
before do
project_auto_devops.enabled = true
end
it 'returns a blank ci config path' do
expect(subject[:merge_request_add_ci_config_path]).to be_nil
end
end
context 'when source project is missing' do
before do
resource.source_project = nil
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment