diff --git a/features/project/builds/badge.feature b/features/project/builds/badge.feature index 4a198488f3d..64263b2f538 100644 --- a/features/project/builds/badge.feature +++ b/features/project/builds/badge.feature @@ -8,10 +8,14 @@ Feature: Project Builds Badge Given recent build is successfull When I display builds badge for a master branch Then I should see a build success badge - And build badge is a svg image Scenario: I want to see a badge for project with filed builds Given recent build failed When I display builds badge for a master branch Then I should see a build failed badge - And build badge is a svg image + + Scenario: I want to see a badge for project with running builds + Given recent build is successfull + And project has an another build that is running + When I display builds badge for a master branch + Then I should see a build running badge diff --git a/features/steps/project/builds/badge.rb b/features/steps/project/builds/badge.rb index 3cf1e2cab5e..0ceb4ddcd25 100644 --- a/features/steps/project/builds/badge.rb +++ b/features/steps/project/builds/badge.rb @@ -8,18 +8,23 @@ class Spinach::Features::ProjectBuildsBadge < Spinach::FeatureSteps end step 'I should see a build success badge' do - expect(svg.at('text:contains("success")')).to be_truthy + expect_badge('success') end step 'I should see a build failed badge' do - expect(svg.at('text:contains("failed")')).to be_truthy + expect_badge('failed') end - step 'build badge is a svg image' do - expect(page.response_headers).to include('Content-Type' => 'image/svg+xml') + step 'I should see a build running badge' do + expect_badge('running') end def svg Nokogiri::HTML.parse(page.body) end + + def expect_badge(status) + expect(page.response_headers).to include('Content-Type' => 'image/svg+xml') + expect(svg.at(%Q{text:contains("#{status}")})).to be_truthy + end end diff --git a/features/steps/shared/builds.rb b/features/steps/shared/builds.rb index 055ebe1c815..7e1d9bb4056 100644 --- a/features/steps/shared/builds.rb +++ b/features/steps/shared/builds.rb @@ -18,6 +18,10 @@ module SharedBuilds @build.update_column(:status, 'failed') end + step 'project has an another build that is running' do + create(:ci_build, commit: @ci_commit, name: 'second build', status: 'running') + end + step 'I visit recent build details page' do visit namespace_project_build_path(@project.namespace, @project, @build) end