diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-02-08 12:23:56 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-02-11 10:29:14 +0100 |
commit | cf0eab504772c05b067ca60f78bc76779342c912 (patch) | |
tree | 71e2e853e426b95c5fba53151bae4fd8e0a639f3 /features | |
parent | eb7721e183337784de9fcaf219a64d443b6b3f0c (diff) | |
download | gitlab-ce-cf0eab504772c05b067ca60f78bc76779342c912.tar.gz |
Add feature tests for builds status badge
Diffstat (limited to 'features')
-rw-r--r-- | features/project/builds/badge.feature | 17 | ||||
-rw-r--r-- | features/steps/project/builds/badge.rb | 25 | ||||
-rw-r--r-- | features/steps/shared/builds.rb | 12 |
3 files changed, 52 insertions, 2 deletions
diff --git a/features/project/builds/badge.feature b/features/project/builds/badge.feature new file mode 100644 index 00000000000..4a198488f3d --- /dev/null +++ b/features/project/builds/badge.feature @@ -0,0 +1,17 @@ +Feature: Project Builds Badge + Background: + Given project exists in some group namespace + And project has CI enabled + And project has a recent build + + Scenario: I want to see a badge for successfully built project + 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 diff --git a/features/steps/project/builds/badge.rb b/features/steps/project/builds/badge.rb new file mode 100644 index 00000000000..3cf1e2cab5e --- /dev/null +++ b/features/steps/project/builds/badge.rb @@ -0,0 +1,25 @@ +class Spinach::Features::ProjectBuildsBadge < Spinach::FeatureSteps + include SharedProject + include SharedBuilds + include RepoHelpers + + step 'I display builds badge for a master branch' do + visit badge_namespace_project_builds_path(@project.namespace, @project, ref: :master, format: :svg) + end + + step 'I should see a build success badge' do + expect(svg.at('text:contains("success")')).to be_truthy + end + + step 'I should see a build failed badge' do + expect(svg.at('text:contains("failed")')).to be_truthy + end + + step 'build badge is a svg image' do + expect(page.response_headers).to include('Content-Type' => 'image/svg+xml') + end + + def svg + Nokogiri::HTML.parse(page.body) + end +end diff --git a/features/steps/shared/builds.rb b/features/steps/shared/builds.rb index 726e2e814ad..055ebe1c815 100644 --- a/features/steps/shared/builds.rb +++ b/features/steps/shared/builds.rb @@ -6,8 +6,16 @@ module SharedBuilds end step 'project has a recent build' do - ci_commit = create :ci_commit, project: @project, sha: sample_commit.id - @build = create :ci_build, commit: ci_commit + @ci_commit = create(:ci_commit, project: @project, sha: @project.commit.sha) + @build = create(:ci_build, commit: @ci_commit) + end + + step 'recent build is successfull' do + @build.update_column(:status, 'success') + end + + step 'recent build failed' do + @build.update_column(:status, 'failed') end step 'I visit recent build details page' do |