Skip to content
Snippets Groups Projects
Commit 24824cbb authored by Felipe Artur's avatar Felipe Artur
Browse files

Fix Specs

parent 85f0b3a9
No related branches found
No related tags found
No related merge requests found
Showing
with 61 additions and 24 deletions
---
title: Preloads head pipeline for each merge request
title: Preloads head pipeline for merge request collection
merge_request:
author:
Loading
Loading
@@ -544,6 +544,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
project = merge_request.source_project
project.enable_ci
pipeline = create :ci_pipeline, project: project, sha: merge_request.diff_head_sha, ref: merge_request.source_branch
merge_request.update(head_pipeline: pipeline)
create :ci_build, pipeline: pipeline
end
 
Loading
Loading
Loading
Loading
@@ -354,7 +354,8 @@ describe Projects::MergeRequestsController do
end
 
before do
create(:ci_empty_pipeline, project: project, sha: merge_request.diff_head_sha, ref: merge_request.source_branch)
pipeline = create(:ci_empty_pipeline, project: project, sha: merge_request.diff_head_sha, ref: merge_request.source_branch)
merge_request.update(head_pipeline: pipeline)
end
 
it 'returns :merge_when_pipeline_succeeds' do
Loading
Loading
Loading
Loading
@@ -9,10 +9,13 @@ feature 'Cycle Analytics', feature: true, js: true do
let(:mr) { create_merge_request_closing_issue(issue, commit_message: "References #{issue.to_reference}") }
let(:pipeline) { create(:ci_empty_pipeline, status: 'created', project: project, ref: mr.source_branch, sha: mr.source_branch_sha) }
 
before { mr.update(head_pipeline: pipeline) }
context 'as an allowed user' do
context 'when project is new' do
before do
project.team << [user, :master]
project.add_master(user)
mr.update(head_pipeline_id: pipeline.id)
login_as(user)
visit namespace_project_cycle_analytics_path(project.namespace, project)
wait_for_ajax
Loading
Loading
Loading
Loading
@@ -52,6 +52,9 @@ describe 'issuable list', feature: true do
create(:issue, project: project, author: user)
else
create(:merge_request, source_project: project, source_branch: generate(:branch))
source_branch = FFaker::Name.name
pipeline = create(:ci_empty_pipeline, project: project, ref: source_branch, status: %w(running failed success).sample, sha: 'any')
create(:merge_request, title: FFaker::Lorem.sentence, source_project: project, source_branch: source_branch, head_pipeline: pipeline)
end
 
2.times do
Loading
Loading
Loading
Loading
@@ -4,16 +4,18 @@ feature 'Merge immediately', :feature, :js do
let(:user) { create(:user) }
let(:project) { create(:project, :public) }
 
let(:merge_request) do
let!(:merge_request) do
create(:merge_request_with_diffs, source_project: project,
author: user,
title: 'Bug NS-04')
title: 'Bug NS-04',
head_pipeline: pipeline,
source_branch: pipeline.ref)
end
 
let(:pipeline) do
create(:ci_pipeline, project: project,
sha: merge_request.diff_head_sha,
ref: merge_request.source_branch)
ref: 'master',
sha: project.repository.commit('master').id)
end
 
before { project.team << [user, :master] }
Loading
Loading
Loading
Loading
@@ -16,7 +16,10 @@ feature 'Merge When Pipeline Succeeds', :feature, :js do
ref: merge_request.source_branch)
end
 
before { project.team << [user, :master] }
before do
project.add_master(user)
merge_request.update(head_pipeline_id: pipeline.id)
end
 
context 'when there is active pipeline for merge request' do
background do
Loading
Loading
Loading
Loading
@@ -3,7 +3,7 @@ require 'rails_helper'
feature 'Mini Pipeline Graph', :js, :feature do
let(:user) { create(:user) }
let(:project) { create(:project, :public) }
let(:merge_request) { create(:merge_request, source_project: project) }
let(:merge_request) { create(:merge_request, source_project: project, head_pipeline: pipeline) }
 
let(:pipeline) { create(:ci_empty_pipeline, project: project, ref: 'master', status: 'running', sha: project.commit.id) }
let(:build) { create(:ci_build, pipeline: pipeline, stage: 'test', commands: 'test') }
Loading
Loading
Loading
Loading
@@ -27,6 +27,8 @@ feature 'Only allow merge requests to be merged if the pipeline succeeds', featu
status: status)
end
 
before { merge_request.update(head_pipeline: pipeline) }
context 'when merge requests can only be merged if the pipeline succeeds' do
before do
project.update_attribute(:only_allow_merge_if_pipeline_succeeds, true)
Loading
Loading
Loading
Loading
@@ -89,6 +89,8 @@ describe 'Merge request', :feature, :js do
statuses: [commit_status])
create(:ci_build, :pending, pipeline: pipeline)
 
merge_request.update(head_pipeline_id: pipeline.id)
visit namespace_project_merge_request_path(project.namespace, project, merge_request)
end
 
Loading
Loading
@@ -101,10 +103,15 @@ describe 'Merge request', :feature, :js do
 
context 'when merge request is in the blocked pipeline state' do
before do
create(:ci_pipeline, project: project,
sha: merge_request.diff_head_sha,
ref: merge_request.source_branch,
status: :manual)
pipeline = create(
:ci_pipeline,
project: project,
sha: merge_request.diff_head_sha,
ref: merge_request.source_branch,
status: :manual
)
merge_request.update(head_pipeline_id: pipeline.id)
 
visit namespace_project_merge_request_path(project.namespace,
project,
Loading
Loading
@@ -129,6 +136,8 @@ describe 'Merge request', :feature, :js do
statuses: [commit_status])
create(:ci_build, :pending, pipeline: pipeline)
 
merge_request.update(head_pipeline_id: pipeline.id)
visit namespace_project_merge_request_path(project.namespace, project, merge_request)
end
 
Loading
Loading
Loading
Loading
@@ -130,6 +130,8 @@ describe 'cycle analytics events' do
end
 
before do
merge_request.update(head_pipeline_id: pipeline.id)
create(:ci_build, pipeline: pipeline, status: :success, author: user)
create(:ci_build, pipeline: pipeline, status: :success, author: user)
 
Loading
Loading
@@ -226,6 +228,8 @@ describe 'cycle analytics events' do
end
 
before do
merge_request.update(head_pipeline_id: pipeline.id)
create(:ci_build, pipeline: pipeline, status: :success, author: user)
create(:ci_build, pipeline: pipeline, status: :success, author: user)
 
Loading
Loading
Loading
Loading
@@ -85,6 +85,7 @@ merge_requests:
- merge_requests_closing_issues
- metrics
- timelogs
- head_pipeline
merge_request_diff:
- merge_request
pipelines:
Loading
Loading
Loading
Loading
@@ -1044,8 +1044,8 @@ describe Ci::Pipeline, models: true do
let(:pipeline) { create(:ci_empty_pipeline, status: 'created', project: project, ref: 'master', sha: 'a288a022a53a5a944fae87bcec6efc87b7061808') }
 
it "returns merge requests whose `diff_head_sha` matches the pipeline's SHA" do
merge_request = create(:merge_request, source_project: project, source_branch: pipeline.ref)
allow_any_instance_of(MergeRequest).to receive(:diff_head_sha) { 'a288a022a53a5a944fae87bcec6efc87b7061808' }
merge_request = create(:merge_request, source_project: project, head_pipeline: pipeline, , source_branch: pipeline.ref)
 
expect(pipeline.merge_requests).to eq([merge_request])
end
Loading
Loading
Loading
Loading
@@ -14,6 +14,7 @@ describe 'CycleAnalytics#test', feature: true do
issue = context.create(:issue, project: context.project)
merge_request = context.create_merge_request_closing_issue(issue)
pipeline = context.create(:ci_pipeline, ref: merge_request.source_branch, sha: merge_request.diff_head_sha, project: context.project)
merge_request.update(head_pipeline: pipeline)
{ pipeline: pipeline, issue: issue }
end,
start_time_conditions: [["pipeline is started", -> (context, data) { data[:pipeline].run! }]],
Loading
Loading
Loading
Loading
@@ -760,13 +760,9 @@ describe MergeRequest, models: true do
describe '#head_pipeline' do
describe 'when the source project exists' do
it 'returns the latest pipeline' do
pipeline = double(:ci_pipeline, ref: 'master')
allow(subject).to receive(:diff_head_sha).and_return('123abc')
expect(subject.source_project).to receive(:pipeline_for).
with('master', '123abc').
and_return(pipeline)
sha = "123abc"
pipeline = create(:ci_empty_pipeline, project: subject.source_project, ref: 'master', status: 'running', sha: sha)
subject.update(head_pipeline: pipeline)
 
expect(subject.head_pipeline).to eq(pipeline)
end
Loading
Loading
@@ -1504,11 +1500,13 @@ describe MergeRequest, models: true do
 
describe '#mergeable_with_slash_command?' do
def create_pipeline(status)
create(:ci_pipeline_with_one_job,
pipeline = create(:ci_pipeline_with_one_job,
project: project,
ref: merge_request.source_branch,
sha: merge_request.diff_head_sha,
status: status)
merge_request.update(head_pipeline: pipeline)
end
 
let(:project) { create(:project, :public, :repository, only_allow_merge_if_pipeline_succeeds: true) }
Loading
Loading
@@ -1594,7 +1592,7 @@ describe MergeRequest, models: true do
 
context 'with running pipeline' do
before do
create_pipeline(:running)
merge_request.update(head_pipeline: create_pipeline(:running))
end
 
it 'is mergeable' do
Loading
Loading
Loading
Loading
@@ -122,6 +122,7 @@ describe 'cycle analytics events', api: true do
mr = create_merge_request_closing_issue(issue, commit_message: "References #{issue.to_reference}")
 
pipeline = create(:ci_empty_pipeline, status: 'created', project: project, ref: mr.source_branch, sha: mr.source_branch_sha)
mr.update(head_pipeline_id: pipeline.id)
pipeline.run
 
create(:ci_build, pipeline: pipeline, status: :success, author: user)
Loading
Loading
Loading
Loading
@@ -82,6 +82,10 @@ describe MergeRequests::MergeWhenPipelineSucceedsService do
sha: merge_request_head, status: 'success')
end
 
before do
mr_merge_if_green_enabled.update(head_pipeline: triggering_pipeline)
end
it "merges all merge requests with merge when the pipeline succeeds enabled" do
expect(MergeWorker).to receive(:perform_async)
service.trigger(triggering_pipeline)
Loading
Loading
@@ -124,6 +128,8 @@ describe MergeRequests::MergeWhenPipelineSucceedsService do
sha: mr_conflict.diff_head_sha, status: 'success')
end
 
before { mr_conflict.update(head_pipeline_id: conflict_pipeline.id) }
it 'does not merge the merge request' do
expect(MergeWorker).not_to receive(:perform_async)
 
Loading
Loading
Loading
Loading
@@ -174,11 +174,13 @@ describe MergeRequests::UpdateService, services: true do
context 'with active pipeline' do
before do
service_mock = double
create(:ci_pipeline_with_one_job,
pipeline = create(:ci_pipeline_with_one_job,
project: project,
ref: merge_request.source_branch,
sha: merge_request.diff_head_sha)
 
merge_request.update(head_pipeline_id: pipeline.id)
expect(MergeRequests::MergeWhenPipelineSucceedsService).to receive(:new).with(project, user).
and_return(service_mock)
expect(service_mock).to receive(:execute).with(merge_request)
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment