summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-09-28 11:01:45 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-09-28 11:01:45 +0200
commitc876bfa0f28ddae7fbca314505f5b150b9cec194 (patch)
treecc22c95ebf629e335ea6db9978eaa3d68f8d6867
parent92f8e0fd7e1d39fb14b5a1849971ad74abf1280d (diff)
downloadgitlab-ce-move-runners-page.tar.gz
Add missing spec filemove-runners-page
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--spec/features/runners_spec.rb87
1 files changed, 87 insertions, 0 deletions
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