diff --git a/features/project/builds/badge.feature b/features/project/builds/badge.feature
new file mode 100644
index 0000000000000000000000000000000000000000..4a198488f3d1cd491f247e5403d64481b7d43968
--- /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 0000000000000000000000000000000000000000..3cf1e2cab5e7e11a9fa4fe6d0fdc7fa57e12e478
--- /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 726e2e814adbc67faae94c683aa89aa63ef913ca..055ebe1c8156adb2aaa6ed5dd204567c60653e82 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