From 65fe4bb1ceed6bae05724f3494fb57e8b09fa616 Mon Sep 17 00:00:00 2001
From: Grzegorz Bizon <grzegorz.bizon@ntsn.pl>
Date: Tue, 8 Dec 2015 11:59:46 +0100
Subject: [PATCH] Improve gitlab ci commits specs (refactoring)

This minimizes usage of instance variables in this spec, and changes
double quotation marks to single when string interpolation is not being
used.
---
 spec/features/commits_spec.rb     | 70 +++++++++++++++----------------
 spec/support/stub_gitlab_calls.rb |  4 ++
 2 files changed, 39 insertions(+), 35 deletions(-)

diff --git a/spec/features/commits_spec.rb b/spec/features/commits_spec.rb
index 130a5016b55..80ff4d3751f 100644
--- a/spec/features/commits_spec.rb
+++ b/spec/features/commits_spec.rb
@@ -1,83 +1,83 @@
 require 'spec_helper'
 
-describe "Commits" do
+describe 'Commits' do
   include CiStatusHelper
 
   let(:project) { create(:project) }
 
-  describe "CI" do
+  describe 'CI' do
     before do
       login_as :user
       project.team << [@user, :master]
-      @ci_project = project.ensure_gitlab_ci_project
-      @commit = FactoryGirl.create :ci_commit, gl_project: project, sha: project.commit.sha
-      @build = FactoryGirl.create :ci_build, commit: @commit
-      @generic_status = FactoryGirl.create :generic_commit_status, commit: @commit
+      project.ensure_gitlab_ci_project
+      stub_ci_commit_to_return_yaml_file
     end
 
-    before do
-      stub_ci_commit_to_return_yaml_file
+    let!(:commit) do
+      FactoryGirl.create :ci_commit, gl_project: project, sha: project.commit.sha
     end
 
-    describe "GET /:project/commits/:sha/ci" do
+    let!(:build) { FactoryGirl.create :ci_build, commit: commit }
+
+    describe 'GET /:project/commits/:sha/ci' do
       before do
-        visit ci_status_path(@commit)
+        visit ci_status_path(commit)
       end
 
-      it { expect(page).to have_content @commit.sha[0..7] }
-      it { expect(page).to have_content @commit.git_commit_message }
-      it { expect(page).to have_content @commit.git_author_name }
+      it { expect(page).to have_content commit.sha[0..7] }
+      it { expect(page).to have_content commit.git_commit_message }
+      it { expect(page).to have_content commit.git_author_name }
     end
 
-    context "Download artifacts" do
+    context 'Download artifacts' do
       let(:artifacts_file) { fixture_file_upload(Rails.root + 'spec/fixtures/banana_sample.gif', 'image/gif') }
 
       before do
-        @build.update_attributes(artifacts_file: artifacts_file)
+        build.update_attributes(artifacts_file: artifacts_file)
       end
 
       it do
-        visit ci_status_path(@commit)
-        click_on "Download artifacts"
+        visit ci_status_path(commit)
+        click_on 'Download artifacts'
         expect(page.response_headers['Content-Type']).to eq(artifacts_file.content_type)
       end
     end
 
-    describe "Cancel all builds" do
-      it "cancels commit" do
-        visit ci_status_path(@commit)
-        click_on "Cancel running"
-        expect(page).to have_content "canceled"
+    describe 'Cancel all builds' do
+      it 'cancels commit' do
+        visit ci_status_path(commit)
+        click_on 'Cancel running'
+        expect(page).to have_content 'canceled'
       end
     end
 
-    describe "Cancel build" do
-      it "cancels build" do
-        visit ci_status_path(@commit)
-        click_on "Cancel"
-        expect(page).to have_content "canceled"
+    describe 'Cancel build' do
+      it 'cancels build' do
+        visit ci_status_path(commit)
+        click_on 'Cancel'
+        expect(page).to have_content 'canceled'
       end
     end
 
-    describe ".gitlab-ci.yml not found warning" do
+    describe '.gitlab-ci.yml not found warning' do
       context 'ci service enabled' do
         it "does not show warning" do
-          visit ci_status_path(@commit)
-          expect(page).not_to have_content ".gitlab-ci.yml not found in this commit"
+          visit ci_status_path(commit)
+          expect(page).not_to have_content '.gitlab-ci.yml not found in this commit'
         end
 
-        it "shows warning" do
+        it 'shows warning' do
           stub_ci_commit_yaml_file(nil)
-          visit ci_status_path(@commit)
-          expect(page).to have_content ".gitlab-ci.yml not found in this commit"
+          visit ci_status_path(commit)
+          expect(page).to have_content '.gitlab-ci.yml not found in this commit'
         end
       end
 
       context 'ci service disabled' do
         before do
-          allow_any_instance_of(GitlabCiService).to receive(:active).and_return(false)
+          stub_ci_service_disabled
           stub_ci_commit_yaml_file(nil)
-          visit ci_status_path(@commit)
+          visit ci_status_path(commit)
         end
 
         it 'does not show warning' do
diff --git a/spec/support/stub_gitlab_calls.rb b/spec/support/stub_gitlab_calls.rb
index 5b3eb1bfc5f..90936183824 100644
--- a/spec/support/stub_gitlab_calls.rb
+++ b/spec/support/stub_gitlab_calls.rb
@@ -21,6 +21,10 @@ module StubGitlabCalls
     allow_any_instance_of(Ci::Commit).to receive(:ci_yaml_file) { ci_yaml }
   end
 
+  def stub_ci_service_disabled
+    allow_any_instance_of(GitlabCiService).to receive(:active).and_return(false)
+  end
+
   private
 
   def gitlab_url
-- 
GitLab