diff options
Diffstat (limited to 'spec/ci/services/image_for_build_service_spec.rb')
-rw-r--r-- | spec/ci/services/image_for_build_service_spec.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/ci/services/image_for_build_service_spec.rb b/spec/ci/services/image_for_build_service_spec.rb new file mode 100644 index 00000000000..4c7094146bb --- /dev/null +++ b/spec/ci/services/image_for_build_service_spec.rb @@ -0,0 +1,46 @@ +require 'spec_helper' + +describe ImageForBuildService do + let(:service) { ImageForBuildService.new } + let(:project) { FactoryGirl.create(:project) } + let(:commit) { FactoryGirl.create(:commit, project: project, ref: 'master') } + let(:build) { FactoryGirl.create(:build, commit: commit) } + + describe :execute do + before { build } + + context 'branch name' do + before { build.run! } + let(:image) { service.execute(project, ref: 'master') } + + it { image.should be_kind_of(OpenStruct) } + it { image.path.to_s.should include('public/build-running.svg') } + it { image.name.should == 'build-running.svg' } + end + + context 'unknown branch name' do + let(:image) { service.execute(project, ref: 'feature') } + + it { image.should be_kind_of(OpenStruct) } + it { image.path.to_s.should include('public/build-unknown.svg') } + it { image.name.should == 'build-unknown.svg' } + end + + context 'commit sha' do + before { build.run! } + let(:image) { service.execute(project, sha: build.sha) } + + it { image.should be_kind_of(OpenStruct) } + it { image.path.to_s.should include('public/build-running.svg') } + it { image.name.should == 'build-running.svg' } + end + + context 'unknown commit sha' do + let(:image) { service.execute(project, sha: '0000000') } + + it { image.should be_kind_of(OpenStruct) } + it { image.path.to_s.should include('public/build-unknown.svg') } + it { image.name.should == 'build-unknown.svg' } + end + end +end |