runners_spec.rb 2.8 KB
Newer Older
D
Douwe Maan 已提交
1 2 3
require 'spec_helper'

describe "Runners" do
4 5
  let(:user)    { create(:user) }

D
Douwe Maan 已提交
6
  before do
7
    login_as(user)
D
Douwe Maan 已提交
8 9 10 11
  end

  describe "specific runners" do
    before do
V
Valery Sizov 已提交
12
      @project = FactoryGirl.create :ci_project
13
      @project.gl_project.team << [user, :master]
D
Douwe Maan 已提交
14

15 16
      @project2 = FactoryGirl.create :ci_project
      @project2.gl_project.team << [user, :master]
D
Douwe Maan 已提交
17

V
Valery Sizov 已提交
18 19 20
      @shared_runner = FactoryGirl.create :ci_shared_runner
      @specific_runner = FactoryGirl.create :ci_specific_runner
      @specific_runner2 = FactoryGirl.create :ci_specific_runner
D
Douwe Maan 已提交
21 22 23 24 25
      @project.runners << @specific_runner
      @project2.runners << @specific_runner2
    end

    it "places runners in right places" do
V
Valery Sizov 已提交
26
      visit ci_project_runners_path(@project)
27 28 29
      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)
D
Douwe Maan 已提交
30 31 32
    end

    it "enables specific runner for project" do
V
Valery Sizov 已提交
33
      visit ci_project_runners_path(@project)
D
Douwe Maan 已提交
34 35 36 37 38

      within ".available-specific-runners" do
        click_on "Enable for this project"
      end

39
      expect(page.find(".activated-specific-runners")).to have_content(@specific_runner2.display_name)
D
Douwe Maan 已提交
40 41 42 43 44
    end

    it "disables specific runner for project" do
      @project2.runners << @specific_runner

V
Valery Sizov 已提交
45
      visit ci_project_runners_path(@project)
D
Douwe Maan 已提交
46 47 48 49 50

      within ".activated-specific-runners" do
        click_on "Disable for this project"
      end

51
      expect(page.find(".available-specific-runners")).to have_content(@specific_runner.display_name)
D
Douwe Maan 已提交
52 53 54
    end

    it "removes specific runner for project if this is last project for that runners" do
V
Valery Sizov 已提交
55
      visit ci_project_runners_path(@project)
D
Douwe Maan 已提交
56 57 58 59 60

      within ".activated-specific-runners" do
        click_on "Remove runner"
      end

61
      expect(Ci::Runner.exists?(id: @specific_runner)).to be_falsey
D
Douwe Maan 已提交
62 63 64 65 66
    end
  end

  describe "shared runners" do
    before do
V
Valery Sizov 已提交
67
      @project = FactoryGirl.create :ci_project
68
      @project.gl_project.team << [user, :master]
D
Douwe Maan 已提交
69 70 71
    end

    it "enables shared runners" do
V
Valery Sizov 已提交
72
      visit ci_project_runners_path(@project)
D
Douwe Maan 已提交
73 74 75

      click_on "Enable shared runners"

76
      expect(@project.reload.shared_runners_enabled).to be_truthy
D
Douwe Maan 已提交
77 78 79 80 81
    end
  end

  describe "show page" do
    before do
V
Valery Sizov 已提交
82
      @project = FactoryGirl.create :ci_project
83
      @project.gl_project.team << [user, :master]
V
Valery Sizov 已提交
84
      @specific_runner = FactoryGirl.create :ci_specific_runner
D
Douwe Maan 已提交
85 86 87 88
      @project.runners << @specific_runner
    end

    it "shows runner information" do
V
Valery Sizov 已提交
89
      visit ci_project_runners_path(@project)
D
Douwe Maan 已提交
90 91 92

      click_on @specific_runner.short_sha

93
      expect(page).to have_content(@specific_runner.platform)
D
Douwe Maan 已提交
94 95 96
    end
  end
end