From c876bfa0f28ddae7fbca314505f5b150b9cec194 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Mon, 28 Sep 2015 11:01:45 +0200
Subject: [PATCH] Add missing spec file

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 spec/features/runners_spec.rb | 87 +++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)
 create mode 100644 spec/features/runners_spec.rb

diff --git a/spec/features/runners_spec.rb b/spec/features/runners_spec.rb
new file mode 100644
index 00000000000..06adb7633b2
--- /dev/null
+++ b/spec/features/runners_spec.rb
@@ -0,0 +1,87 @@
+require 'spec_helper'
+
+describe "Runners" do
+  include GitlabRoutingHelper
+
+  let(:user) { create(:user) }
+  before { login_as(user) }
+
+  describe "specific runners" do
+    before do
+      @project = FactoryGirl.create :ci_project
+      @project.gl_project.team << [user, :master]
+
+      @project2 = FactoryGirl.create :ci_project
+      @project2.gl_project.team << [user, :master]
+
+      @shared_runner = FactoryGirl.create :ci_shared_runner
+      @specific_runner = FactoryGirl.create :ci_specific_runner
+      @specific_runner2 = FactoryGirl.create :ci_specific_runner
+      @project.runners << @specific_runner
+      @project2.runners << @specific_runner2
+
+      visit runners_path(@project.gl_project)
+    end
+
+    it "places runners in right places" do
+      expect(page.find(".available-specific-runners")).to have_content(@specific_runner2.display_name)
+      expect(page.find(".activated-specific-runners")).to have_content(@specific_runner.display_name)
+      expect(page.find(".available-shared-runners")).to have_content(@shared_runner.display_name)
+    end
+
+    it "enables specific runner for project" do
+      within ".available-specific-runners" do
+        click_on "Enable for this project"
+      end
+
+      expect(page.find(".activated-specific-runners")).to have_content(@specific_runner2.display_name)
+    end
+
+    it "disables specific runner for project" do
+      @project2.runners << @specific_runner
+      visit runners_path(@project.gl_project)
+
+      within ".activated-specific-runners" do
+        click_on "Disable for this project"
+      end
+
+      expect(page.find(".available-specific-runners")).to have_content(@specific_runner.display_name)
+    end
+
+    it "removes specific runner for project if this is last project for that runners" do
+      within ".activated-specific-runners" do
+        click_on "Remove runner"
+      end
+
+      expect(Ci::Runner.exists?(id: @specific_runner)).to be_falsey
+    end
+  end
+
+  describe "shared runners" do
+    before do
+      @project = FactoryGirl.create :ci_project
+      @project.gl_project.team << [user, :master]
+      visit runners_path(@project.gl_project)
+    end
+
+    it "enables shared runners" do
+      click_on "Enable shared runners"
+      expect(@project.reload.shared_runners_enabled).to be_truthy
+    end
+  end
+
+  describe "show page" do
+    before do
+      @project = FactoryGirl.create :ci_project
+      @project.gl_project.team << [user, :master]
+      @specific_runner = FactoryGirl.create :ci_specific_runner
+      @project.runners << @specific_runner
+      visit runners_path(@project.gl_project)
+    end
+
+    it "shows runner information" do
+      click_on @specific_runner.short_sha
+      expect(page).to have_content(@specific_runner.platform)
+    end
+  end
+end
-- 
GitLab