From 62ba789545555dbed2df5e21d3db4dcb54b1bbae Mon Sep 17 00:00:00 2001 From: Ronald van Eede Date: Fri, 9 Aug 2013 20:14:02 +0200 Subject: [PATCH] Added can_test? mehod to Service model and added tests --- app/models/service.rb | 4 ++++ app/views/projects/services/_form.html.haml | 2 +- spec/models/service_spec.rb | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/app/models/service.rb b/app/models/service.rb index d21e8a2..540aaad 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -49,4 +49,8 @@ class Service < ActiveRecord::Base def execute # implement inside child end + + def can_test? + !project.empty_repo? + end end diff --git a/app/views/projects/services/_form.html.haml b/app/views/projects/services/_form.html.haml index b3cbf17..a099193 100644 --- a/app/views/projects/services/_form.html.haml +++ b/app/views/projects/services/_form.html.haml @@ -44,5 +44,5 @@ .form-actions = f.submit 'Save', class: 'btn btn-save'   - - if @service.valid? && @service.activated? + - if @service.valid? && @service.activated? && @service.can_test? = link_to 'Test settings', test_project_service_path(@project, @service.to_param), class: 'btn btn-small' diff --git a/spec/models/service_spec.rb b/spec/models/service_spec.rb index 55ef191..667c80b 100644 --- a/spec/models/service_spec.rb +++ b/spec/models/service_spec.rb @@ -18,6 +18,7 @@ require 'spec_helper' describe Service do + describe "Associations" do it { should belong_to :project } it { should have_one :service_hook } @@ -26,4 +27,40 @@ describe Service do describe "Mass assignment" do it { should_not allow_mass_assignment_of(:project_id) } end + + describe "Test Button" do + before do + @service = Service.new + end + + describe "Testable" do + let (:project) { create :project } + + before do + @service.stub( + project: project + ) + @testable = @service.can_test? + end + + describe :can_test do + it { @testable.should == false } + end + end + + describe "With commits" do + let (:project) { create :project_with_code } + + before do + @service.stub( + project: project + ) + @testable = @service.can_test? + end + + describe :can_test do + it { @testable.should == true } + end + end + end end -- libgit2 0.21.2