diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-03-25 15:33:23 -0700 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-03-25 15:33:23 -0700 |
commit | 2cf6bac625400bfa037d0aca36e2589c1148204c (patch) | |
tree | 360fafd3cf998a01d4fdd4483411c93d269bafd7 | |
parent | cebdfc7bf5aa30cfa744f8426a0bf82e77e0e8fa (diff) | |
download | gitlab-ci-2cf6bac625400bfa037d0aca36e2589c1148204c.tar.gz |
Convert shared runner to specific when assing to project
-rw-r--r-- | app/models/runner.rb | 6 | ||||
-rw-r--r-- | spec/models/runner_spec.rb | 11 |
2 files changed, 17 insertions, 0 deletions
diff --git a/app/models/runner.rb b/app/models/runner.rb index b9dbfcb..ed70097 100644 --- a/app/models/runner.rb +++ b/app/models/runner.rb @@ -33,6 +33,8 @@ class Runner < ActiveRecord::Base end def assign_to(project, current_user = nil) + self.is_shared = false if shared? + self.save project.runner_projects.create!(runner_id: self.id) end @@ -46,6 +48,10 @@ class Runner < ActiveRecord::Base is_shared end + def specific? + !shared? + end + def only_for?(project) projects == [project] end diff --git a/spec/models/runner_spec.rb b/spec/models/runner_spec.rb index 128a05c..5440e9e 100644 --- a/spec/models/runner_spec.rb +++ b/spec/models/runner_spec.rb @@ -31,4 +31,15 @@ describe Runner do expect(runner.display_name).to eq runner.token end end + + describe :assign_to do + let!(:project) { FactoryGirl.create :project } + let!(:shared_runner) { FactoryGirl.create(:runner, is_shared: true) } + + before { shared_runner.assign_to(project) } + + it { shared_runner.should be_specific } + it { shared_runner.projects.should == [project] } + it { shared_runner.only_for?(project).should be_true } + end end |