Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--features/project/builds/badge.feature17
-rw-r--r--features/steps/project/builds/badge.rb25
-rw-r--r--features/steps/shared/builds.rb12
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