From 48d43608b8e9118033c1701c98f330aa10f9eb54 Mon Sep 17 00:00:00 2001
From: Grzegorz Bizon <grzesiek.bizon@gmail.com>
Date: Tue, 13 Dec 2016 12:27:01 +0100
Subject: [PATCH] Refine build stop/play extended status specs

---
 lib/gitlab/ci/status/build/play.rb           |  8 ++---
 spec/lib/gitlab/ci/status/build/play_spec.rb | 27 ++++++---------
 spec/lib/gitlab/ci/status/build/stop_spec.rb | 35 ++++++++++++--------
 3 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/lib/gitlab/ci/status/build/play.rb b/lib/gitlab/ci/status/build/play.rb
index 974b9e9b1f9..5c506e6d59f 100644
--- a/lib/gitlab/ci/status/build/play.rb
+++ b/lib/gitlab/ci/status/build/play.rb
@@ -21,14 +21,14 @@ module Gitlab
             can?(user, :update_build, subject)
           end
 
-          def action_title
-            'Play'
-          end
-
           def action_icon
             'play'
           end
 
+          def action_title
+            'Play'
+          end
+
           def action_class
             'ci-play-icon'
           end
diff --git a/spec/lib/gitlab/ci/status/build/play_spec.rb b/spec/lib/gitlab/ci/status/build/play_spec.rb
index ae103d8993d..180a2808a42 100644
--- a/spec/lib/gitlab/ci/status/build/play_spec.rb
+++ b/spec/lib/gitlab/ci/status/build/play_spec.rb
@@ -1,30 +1,26 @@
 require 'spec_helper'
 
 describe Gitlab::Ci::Status::Build::Play do
-  let(:core_status) { double('core status') }
+  let(:status) { double('core') }
   let(:user) { double('user') }
 
-  subject do
-    described_class.new(core_status)
-  end
+  subject { described_class.new(status) }
 
   describe '#text' do
-    it { expect(subject.text).to eq 'play' }
+    it { expect(subject.text).to eq 'manual' }
   end
 
   describe '#label' do
-    it { expect(subject.label).to eq 'play' }
+    it { expect(subject.label).to eq 'manual play action' }
   end
 
   describe '#icon' do
-    it 'does not override core status icon' do
-      expect(core_status).to receive(:icon)
-
-      subject.icon
-    end
+    it { expect(subject.icon).to eq 'icon_status_manual' }
   end
 
   describe '.matches?' do
+    subject { described_class.matches?(build, user) }
+
     context 'build is playable' do
       context 'when build stops an environment' do
         let(:build) do
@@ -32,8 +28,7 @@ describe Gitlab::Ci::Status::Build::Play do
         end
 
         it 'does not match' do
-          expect(described_class.matches?(build, user))
-            .to be false
+          expect(subject).to be false
         end
       end
 
@@ -41,8 +36,7 @@ describe Gitlab::Ci::Status::Build::Play do
         let(:build) { create(:ci_build, :playable) }
 
         it 'is a correct match' do
-          expect(described_class.matches?(build, user))
-            .to be true
+          expect(subject).to be true
         end
       end
     end
@@ -51,8 +45,7 @@ describe Gitlab::Ci::Status::Build::Play do
       let(:build) { create(:ci_build) }
 
       it 'does not match' do
-        expect(described_class.matches?(build, user))
-          .to be false
+        expect(subject).to be false
       end
     end
   end
diff --git a/spec/lib/gitlab/ci/status/build/stop_spec.rb b/spec/lib/gitlab/ci/status/build/stop_spec.rb
index f2121210417..bc1939fb493 100644
--- a/spec/lib/gitlab/ci/status/build/stop_spec.rb
+++ b/spec/lib/gitlab/ci/status/build/stop_spec.rb
@@ -1,30 +1,40 @@
 require 'spec_helper'
 
 describe Gitlab::Ci::Status::Build::Stop do
-  let(:core_status) { double('core status') }
+  let(:status) { double('core status') }
   let(:user) { double('user') }
 
   subject do
-    described_class.new(core_status)
+    described_class.new(status)
   end
 
   describe '#text' do
-    it { expect(subject.text).to eq 'stop' }
+    it { expect(subject.text).to eq 'manual' }
   end
 
   describe '#label' do
-    it { expect(subject.label).to eq 'stop' }
+    it { expect(subject.label).to eq 'manual stop action' }
   end
 
   describe '#icon' do
-    it 'does not override core status icon' do
-      expect(core_status).to receive(:icon)
+    it { expect(subject.icon).to eq 'icon_status_manual' }
+  end
 
-      subject.icon
-    end
+  describe '#has_action?' do
+  end
+
+  describe '#action_icon' do
+  end
+
+  describe '#action_path' do
+  end
+
+  describe '#action_title' do
   end
 
   describe '.matches?' do
+    subject { described_class.matches?(build, user) }
+
     context 'build is playable' do
       context 'when build stops an environment' do
         let(:build) do
@@ -32,8 +42,7 @@ describe Gitlab::Ci::Status::Build::Stop do
         end
 
         it 'is a correct match' do
-          expect(described_class.matches?(build, user))
-            .to be true
+          expect(subject).to be true
         end
       end
 
@@ -41,8 +50,7 @@ describe Gitlab::Ci::Status::Build::Stop do
         let(:build) { create(:ci_build, :playable) }
 
         it 'does not match' do
-          expect(described_class.matches?(build, user))
-            .to be false
+          expect(subject).to be false
         end
       end
     end
@@ -51,8 +59,7 @@ describe Gitlab::Ci::Status::Build::Stop do
       let(:build) { create(:ci_build) }
 
       it 'does not match' do
-        expect(described_class.matches?(build, user))
-          .to be false
+        expect(subject).to be false
       end
     end
   end
-- 
GitLab