diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2016-07-20 23:17:28 +0800 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2016-07-20 23:17:28 +0800 |
commit | e8bab842cb519cd8af61368d7307c9c84b6f8d38 (patch) | |
tree | 467313ab0ca781acb4e2ae847d9759a01d03c74d | |
parent | 782b384f8a738ecffef27b0651d986a9823045e9 (diff) | |
download | gitlab-ce-e8bab842cb519cd8af61368d7307c9c84b6f8d38.tar.gz |
Cleanup that a bit
-rw-r--r-- | spec/models/project_spec.rb | 69 |
1 files changed, 27 insertions, 42 deletions
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 9d122fd0083..3a5e922bae7 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1115,29 +1115,44 @@ describe Project, models: true do end describe '#latest_successful_builds_for' do - def create_pipeline + def create_pipeline(status = 'success') create(:ci_pipeline, project: project, sha: project.commit.sha, ref: project.default_branch, - status: 'success') + status: status) end def create_build(new_pipeline = pipeline, name = 'test') create(:ci_build, :success, :artifacts, pipeline: new_pipeline, + status: new_pipeline.status, name: name) end let(:project) { create(:project) } let(:pipeline) { create_pipeline } - let(:build) { create_build } + + context 'with many builds' do + before do + @pipeline1 = create_pipeline + @pipeline2 = create_pipeline + @build1_p2 = create_build(@pipeline2, 'test') + @build1_p1 = create_build(@pipeline1, 'test') + @build2_p1 = create_build(@pipeline1, 'test2') + @build2_p2 = create_build(@pipeline2, 'test2') + end + + it 'gives the latest builds from latest pipeline' do + latest_builds = project.latest_successful_builds_for + + expect(latest_builds).to contain_exactly(@build2_p2, @build1_p2) + end + end context 'with succeeded pipeline' do - context 'standalone pipeline' do - before do - build - end + let!(:build) { create_build } + context 'standalone pipeline' do it 'returns builds for ref for default_branch' do builds = project.latest_successful_builds_for @@ -1152,45 +1167,15 @@ describe Project, models: true do end end - context 'with many builds' do + context 'with some pending pipeline' do before do - @pipeline1 = create_pipeline - @pipeline2 = create_pipeline - @build1_p2 = create_build(@pipeline2, 'test') - @build1_p1 = create_build(@pipeline1, 'test') - @build2_p1 = create_build(@pipeline1, 'test2') - @build2_p2 = create_build(@pipeline2, 'test2') + create_build(create_pipeline('pending')) end - it 'gives the latest builds from latest pipeline' do - latest_builds = project.latest_successful_builds_for - - expect(latest_builds).to contain_exactly(@build2_p2, @build1_p2) - end - end - - context 'with multiple pipelines and builds' do - shared_examples 'latest successful one' do - it 'gives the latest build from latest pipeline' do - latest_build = project.latest_successful_builds_for.first - - expect(latest_build).to eq(build) - end - end - - context 'with some pending pipeline' do - before do - # make sure pipeline was old, but still the latest success one - build - - new_pipeline = create(:ci_pipeline, project: project, - sha: project.commit.sha, - ref: project.default_branch, - status: 'pending') - create(:ci_build, :pending, :artifacts, pipeline: new_pipeline) - end + it 'gives the latest build from latest pipeline' do + latest_build = project.latest_successful_builds_for - it_behaves_like 'latest successful one' + expect(latest_build).to contain_exactly(build) end end end |