Merge branch 'master' into hook
Conflicts: lib/guard/guard.rb spec/guard_spec.rb
This commit is contained in:
commit
5b8ae609da
@ -1,4 +1,4 @@
|
|||||||
guard('rspec', :version => 2) do
|
guard('rspec', :cli => '-f doc', :version => 2) do
|
||||||
watch(%r{^spec/(.*)_spec\.rb})
|
watch(%r{^spec/(.*)_spec\.rb})
|
||||||
watch(%r{^lib/(.*)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
|
watch(%r{^lib/(.*)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
|
||||||
watch('spec/spec_helper.rb') { "spec" }
|
watch('spec/spec_helper.rb') { "spec" }
|
||||||
|
@ -34,9 +34,7 @@ module Guard
|
|||||||
UI.error "No guards found in Guardfile, please add at least one."
|
UI.error "No guards found in Guardfile, please add at least one."
|
||||||
else
|
else
|
||||||
listener.on_change do |files|
|
listener.on_change do |files|
|
||||||
if Watcher.match_files?(guards, files)
|
run { run_on_change_for_all_guards(files) } if Watcher.match_files?(guards, files)
|
||||||
run { run_on_change_for_all_guards(files) }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
UI.info "Guard is now watching at '#{Dir.pwd}'"
|
UI.info "Guard is now watching at '#{Dir.pwd}'"
|
||||||
@ -50,11 +48,12 @@ module Guard
|
|||||||
paths = Watcher.match_files(guard, files)
|
paths = Watcher.match_files(guard, files)
|
||||||
supervised_task(guard, :run_on_change, paths) unless paths.empty?
|
supervised_task(guard, :run_on_change, paths) unless paths.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
# Reparse the whole directory to catch new files modified during the guards run
|
# Reparse the whole directory to catch new files modified during the guards run
|
||||||
new_modified_files = listener.modified_files([Dir.pwd + '/'], :all => true)
|
new_modified_files = listener.modified_files([Dir.pwd + '/'], :all => true)
|
||||||
listener.update_last_event
|
listener.update_last_event
|
||||||
unless new_modified_files.empty?
|
unless new_modified_files.empty?
|
||||||
run { run_on_change_for_all_guards(new_modified_files) }
|
run { run_on_change_for_all_guards(new_modified_files) } if Watcher.match_files?(guards, files)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -97,7 +96,7 @@ module Guard
|
|||||||
end
|
end
|
||||||
|
|
||||||
def locate_guard(name)
|
def locate_guard(name)
|
||||||
`gem which guard/#{name}`.chomp
|
Gem.source_index.find_name("guard-#{name}").last.full_gem_path
|
||||||
rescue
|
rescue
|
||||||
UI.error "Could not find 'guard-#{name}' gem path."
|
UI.error "Could not find 'guard-#{name}' gem path."
|
||||||
end
|
end
|
||||||
|
@ -46,7 +46,6 @@ module Guard
|
|||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def self.mac?
|
def self.mac?
|
||||||
Config::CONFIG['target_os'] =~ /darwin/i
|
Config::CONFIG['target_os'] =~ /darwin/i
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'guard/dsl'
|
|
||||||
|
|
||||||
describe Guard::Dsl do
|
describe Guard::Dsl do
|
||||||
subject { Guard::Dsl }
|
subject { Guard::Dsl }
|
||||||
@ -8,14 +7,14 @@ describe Guard::Dsl do
|
|||||||
::Guard.stub!(:add_guard)
|
::Guard.stub!(:add_guard)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should write an error message when no Guardfile is found" do
|
it "displays an error message when no Guardfile is found" do
|
||||||
Dir.stub!(:pwd).and_return("no_guardfile_here")
|
Dir.stub!(:pwd).and_return("no_guardfile_here")
|
||||||
|
|
||||||
Guard::UI.should_receive(:error).with("No Guardfile in current folder, please create one.")
|
Guard::UI.should_receive(:error).with("No Guardfile in current folder, please create one.")
|
||||||
lambda { subject.evaluate_guardfile }.should raise_error
|
lambda { subject.evaluate_guardfile }.should raise_error
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should write an error message when Guardfile is not valid" do
|
it "displays an error message when Guardfile is not valid" do
|
||||||
mock_guardfile_content("This Guardfile is invalid!")
|
mock_guardfile_content("This Guardfile is invalid!")
|
||||||
|
|
||||||
Guard::UI.should_receive(:error).with(/Invalid Guardfile, original error is:\n/)
|
Guard::UI.should_receive(:error).with(/Invalid Guardfile, original error is:\n/)
|
||||||
@ -23,15 +22,23 @@ describe Guard::Dsl do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe ".guardfile_include?" do
|
describe ".guardfile_include?" do
|
||||||
it "should detect a guard specified as a string" do
|
it "detects a guard specified by a string with simple quotes" do
|
||||||
mock_guardfile_content("guard 'test'")
|
mock_guardfile_content("guard 'test'")
|
||||||
|
|
||||||
subject.guardfile_include?('test').should be_true
|
subject.guardfile_include?('test').should be_true
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should detect a guard specified as a symbol" do
|
it "detects a guard specified by a string with double quotes" do
|
||||||
mock_guardfile_content("guard :test")
|
mock_guardfile_content('guard "test"')
|
||||||
|
subject.guardfile_include?('test').should be_true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "detects a guard specified by a symbol" do
|
||||||
|
mock_guardfile_content("guard :test")
|
||||||
|
subject.guardfile_include?('test').should be_true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "detects a guard wrapped in parentheses" do
|
||||||
|
mock_guardfile_content("guard(:test)")
|
||||||
subject.guardfile_include?('test').should be_true
|
subject.guardfile_include?('test').should be_true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Guard::Listener do
|
describe Guard::Listener do
|
||||||
subject { described_class }
|
subject { Guard::Listener }
|
||||||
|
|
||||||
describe ".select_and_init" do
|
describe ".select_and_init" do
|
||||||
before(:each) { @target_os = Config::CONFIG['target_os'] }
|
before(:each) { @target_os = Config::CONFIG['target_os'] }
|
||||||
after(:each) { Config::CONFIG['target_os'] = @target_os }
|
after(:each) { Config::CONFIG['target_os'] = @target_os }
|
||||||
|
|
||||||
it "should use darwin listener on Mac OS X" do
|
it "uses darwin listener on Mac OS X" do
|
||||||
Config::CONFIG['target_os'] = 'darwin10.4.0'
|
Config::CONFIG['target_os'] = 'darwin10.4.0'
|
||||||
Guard::Darwin.stub(:usable?).and_return(true)
|
Guard::Darwin.stub(:usable?).and_return(true)
|
||||||
Guard::Darwin.should_receive(:new)
|
Guard::Darwin.should_receive(:new)
|
||||||
subject.select_and_init
|
subject.select_and_init
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should use polling listener on Windows" do
|
it "uses polling listener on Windows" do
|
||||||
Config::CONFIG['target_os'] = 'win32'
|
Config::CONFIG['target_os'] = 'win32'
|
||||||
Guard::Polling.stub(:usable?).and_return(true)
|
Guard::Polling.stub(:usable?).and_return(true)
|
||||||
Guard::Polling.should_receive(:new)
|
Guard::Polling.should_receive(:new)
|
||||||
subject.select_and_init
|
subject.select_and_init
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should use linux listener on Linux" do
|
it "uses linux listener on Linux" do
|
||||||
Config::CONFIG['target_os'] = 'linux'
|
Config::CONFIG['target_os'] = 'linux'
|
||||||
Guard::Linux.stub(:usable?).and_return(true)
|
Guard::Linux.stub(:usable?).and_return(true)
|
||||||
Guard::Linux.should_receive(:new)
|
Guard::Linux.should_receive(:new)
|
||||||
@ -32,7 +32,7 @@ describe Guard::Listener do
|
|||||||
describe "#update_last_event" do
|
describe "#update_last_event" do
|
||||||
subject { described_class.new }
|
subject { described_class.new }
|
||||||
|
|
||||||
it "should update last_event with time.now" do
|
it "updates last_event with time.now" do
|
||||||
time = Time.now
|
time = Time.now
|
||||||
subject.update_last_event
|
subject.update_last_event
|
||||||
subject.last_event.should >= time
|
subject.last_event.should >= time
|
||||||
|
@ -5,17 +5,17 @@ describe Guard::Darwin do
|
|||||||
subject { Guard::Darwin }
|
subject { Guard::Darwin }
|
||||||
|
|
||||||
if linux?
|
if linux?
|
||||||
it "should not be usable on linux" do
|
it "isn't usable on linux" do
|
||||||
subject.should_not be_usable
|
subject.should_not be_usable
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if mac?
|
if mac?
|
||||||
it "should be usable on 10.6" do
|
it "is usable on 10.6" do
|
||||||
subject.should be_usable
|
subject.should be_usable
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "watch" do
|
describe "#on_change" do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@results = []
|
@results = []
|
||||||
@listener = Guard::Darwin.new
|
@listener = Guard::Darwin.new
|
||||||
@ -24,7 +24,7 @@ describe Guard::Darwin do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should catch new file" do
|
it "catches new file" do
|
||||||
file = @fixture_path.join("newfile.rb")
|
file = @fixture_path.join("newfile.rb")
|
||||||
File.exists?(file).should be_false
|
File.exists?(file).should be_false
|
||||||
start
|
start
|
||||||
@ -34,7 +34,7 @@ describe Guard::Darwin do
|
|||||||
@results.should == ['spec/fixtures/newfile.rb']
|
@results.should == ['spec/fixtures/newfile.rb']
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should catch file update" do
|
it "catches file update" do
|
||||||
file = @fixture_path.join("folder1/file1.txt")
|
file = @fixture_path.join("folder1/file1.txt")
|
||||||
File.exists?(file).should be_true
|
File.exists?(file).should be_true
|
||||||
start
|
start
|
||||||
@ -43,7 +43,7 @@ describe Guard::Darwin do
|
|||||||
@results.should == ['spec/fixtures/folder1/file1.txt']
|
@results.should == ['spec/fixtures/folder1/file1.txt']
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should catch files update" do
|
it "catches files update" do
|
||||||
file1 = @fixture_path.join("folder1/file1.txt")
|
file1 = @fixture_path.join("folder1/file1.txt")
|
||||||
file2 = @fixture_path.join("folder1/folder2/file2.txt")
|
file2 = @fixture_path.join("folder1/folder2/file2.txt")
|
||||||
File.exists?(file1).should be_true
|
File.exists?(file1).should be_true
|
||||||
@ -60,13 +60,13 @@ describe Guard::Darwin do
|
|||||||
private
|
private
|
||||||
|
|
||||||
def start
|
def start
|
||||||
sleep 1
|
sleep 0.6
|
||||||
Thread.new { @listener.start }
|
Thread.new { @listener.start }
|
||||||
sleep 1
|
sleep 0.6
|
||||||
end
|
end
|
||||||
|
|
||||||
def stop
|
def stop
|
||||||
sleep 1
|
sleep 0.6
|
||||||
@listener.stop
|
@listener.stop
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -6,17 +6,17 @@ describe Guard::Linux do
|
|||||||
subject { Guard::Linux }
|
subject { Guard::Linux }
|
||||||
|
|
||||||
if mac?
|
if mac?
|
||||||
it "should not be usable on 10.6" do
|
it "isn't usable on 10.6" do
|
||||||
subject.should_not be_usable
|
subject.should_not be_usable
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if linux?
|
if linux?
|
||||||
it "should be usable on linux" do
|
it "is usable on linux" do
|
||||||
subject.should be_usable
|
subject.should be_usable
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "start" do
|
describe "#start" do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@listener = Guard::Linux.new
|
@listener = Guard::Linux.new
|
||||||
end
|
end
|
||||||
@ -40,7 +40,7 @@ describe Guard::Linux do
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "watch" do
|
describe "#on_change" do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@results = []
|
@results = []
|
||||||
@listener = Guard::Linux.new
|
@listener = Guard::Linux.new
|
||||||
|
@ -11,35 +11,37 @@ describe Guard::Polling do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should catch new file" do
|
describe "#on_change" do
|
||||||
file = @fixture_path.join("newfile.rb")
|
it "catches new file" do
|
||||||
File.exists?(file).should be_false
|
file = @fixture_path.join("newfile.rb")
|
||||||
start
|
File.exists?(file).should be_false
|
||||||
FileUtils.touch file
|
start
|
||||||
stop
|
FileUtils.touch file
|
||||||
File.delete file
|
stop
|
||||||
@results.should == ['spec/fixtures/newfile.rb']
|
File.delete file
|
||||||
end
|
@results.should == ['spec/fixtures/newfile.rb']
|
||||||
|
end
|
||||||
|
|
||||||
it "should catch file update" do
|
it "catches file update" do
|
||||||
file = @fixture_path.join("folder1/file1.txt")
|
file = @fixture_path.join("folder1/file1.txt")
|
||||||
File.exists?(file).should be_true
|
File.exists?(file).should be_true
|
||||||
start
|
start
|
||||||
FileUtils.touch file
|
FileUtils.touch file
|
||||||
stop
|
stop
|
||||||
@results.should == ['spec/fixtures/folder1/file1.txt']
|
@results.should == ['spec/fixtures/folder1/file1.txt']
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should catch files update" do
|
it "catches files update" do
|
||||||
file1 = @fixture_path.join("folder1/file1.txt")
|
file1 = @fixture_path.join("folder1/file1.txt")
|
||||||
file2 = @fixture_path.join("folder1/folder2/file2.txt")
|
file2 = @fixture_path.join("folder1/folder2/file2.txt")
|
||||||
File.exists?(file1).should be_true
|
File.exists?(file1).should be_true
|
||||||
File.exists?(file2).should be_true
|
File.exists?(file2).should be_true
|
||||||
start
|
start
|
||||||
FileUtils.touch file1
|
FileUtils.touch file1
|
||||||
FileUtils.touch file2
|
FileUtils.touch file2
|
||||||
stop
|
stop
|
||||||
@results.sort.should == ['spec/fixtures/folder1/file1.txt', 'spec/fixtures/folder1/folder2/file2.txt']
|
@results.sort.should == ['spec/fixtures/folder1/file1.txt', 'spec/fixtures/folder1/folder2/file2.txt']
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -3,12 +3,15 @@ require 'spec_helper'
|
|||||||
describe Guard::Notifier do
|
describe Guard::Notifier do
|
||||||
subject { Guard::Notifier }
|
subject { Guard::Notifier }
|
||||||
|
|
||||||
describe "notify" do
|
describe ".notify" do
|
||||||
before(:each) { ENV["GUARD_ENV"] = 'special_test' }
|
before(:each) do
|
||||||
|
@saved_guard_env = ENV["GUARD_ENV"]
|
||||||
|
ENV["GUARD_ENV"] = 'dont_mute_notify'
|
||||||
|
end
|
||||||
|
|
||||||
if mac?
|
if mac?
|
||||||
require 'growl'
|
require 'growl'
|
||||||
it "should use Growl on Mac OS X" do
|
it "uses Growl on Mac OS X" do
|
||||||
Growl.should_receive(:notify).with("great",
|
Growl.should_receive(:notify).with("great",
|
||||||
:title => "Guard",
|
:title => "Guard",
|
||||||
:icon => Pathname.new(File.dirname(__FILE__)).join('../../images/success.png').to_s,
|
:icon => Pathname.new(File.dirname(__FILE__)).join('../../images/success.png').to_s,
|
||||||
@ -20,7 +23,7 @@ describe Guard::Notifier do
|
|||||||
|
|
||||||
if linux?
|
if linux?
|
||||||
require 'libnotify'
|
require 'libnotify'
|
||||||
it "should use Libnotify on Linux" do
|
it "uses Libnotify on Linux" do
|
||||||
Libnotify.should_receive(:show).with(
|
Libnotify.should_receive(:show).with(
|
||||||
:body => "great",
|
:body => "great",
|
||||||
:summary => 'Guard',
|
:summary => 'Guard',
|
||||||
@ -30,12 +33,12 @@ describe Guard::Notifier do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "turned off" do
|
describe ".turn_off" do
|
||||||
before(:each) { subject.turn_off }
|
before(:each) { subject.turn_off }
|
||||||
|
|
||||||
if mac?
|
if mac?
|
||||||
require 'growl'
|
require 'growl'
|
||||||
it "should do nothing" do
|
it "does nothing" do
|
||||||
Growl.should_not_receive(:notify)
|
Growl.should_not_receive(:notify)
|
||||||
subject.notify 'great', :title => 'Guard'
|
subject.notify 'great', :title => 'Guard'
|
||||||
end
|
end
|
||||||
@ -43,14 +46,14 @@ describe Guard::Notifier do
|
|||||||
|
|
||||||
if linux?
|
if linux?
|
||||||
require 'libnotify'
|
require 'libnotify'
|
||||||
it "should do nothing" do
|
it "does nothing" do
|
||||||
Libnotify.should_not_receive(:show)
|
Libnotify.should_not_receive(:show)
|
||||||
subject.notify 'great', :title => 'Guard'
|
subject.notify 'great', :title => 'Guard'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
after(:each) { ENV["GUARD_ENV"] = 'test' }
|
after(:each) { ENV["GUARD_ENV"] = @saved_guard_env }
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
@ -3,26 +3,30 @@ require 'guard/guard'
|
|||||||
|
|
||||||
describe Guard::Watcher do
|
describe Guard::Watcher do
|
||||||
|
|
||||||
describe "pattern" do
|
describe "#initialize" do
|
||||||
it "should be required" do
|
describe "pattern parameter" do
|
||||||
expect { Guard::Watcher.new }.to raise_error(ArgumentError)
|
it "is required" do
|
||||||
end
|
expect { Guard::Watcher.new }.to raise_error(ArgumentError)
|
||||||
|
end
|
||||||
|
|
||||||
it "can be a string" do
|
it "can be a string" do
|
||||||
Guard::Watcher.new('spec_helper.rb').pattern.should == 'spec_helper.rb'
|
Guard::Watcher.new('spec_helper.rb').pattern.should == 'spec_helper.rb'
|
||||||
end
|
end
|
||||||
|
|
||||||
it "can be a regexp" do
|
it "can be a regexp" do
|
||||||
Guard::Watcher.new(/spec_helper\.rb/).pattern.should == /spec_helper\.rb/
|
Guard::Watcher.new(/spec_helper\.rb/).pattern.should == /spec_helper\.rb/
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "string looking like a regex" do
|
describe "can be a string looking like a regex (deprecated)" do
|
||||||
before(:each) { Guard::UI.should_receive(:info).any_number_of_times }
|
before(:each) { Guard::UI.should_receive(:info).any_number_of_times }
|
||||||
|
|
||||||
specify { Guard::Watcher.new('^spec_helper.rb').pattern.should == /^spec_helper.rb/ }
|
it "and is automatically casted to a regex" do
|
||||||
specify { Guard::Watcher.new('spec_helper.rb$').pattern.should == /spec_helper.rb$/ }
|
Guard::Watcher.new('^spec_helper.rb').pattern.should == /^spec_helper.rb/
|
||||||
specify { Guard::Watcher.new('spec_helper\.rb').pattern.should == /spec_helper\.rb/ }
|
Guard::Watcher.new('spec_helper.rb$').pattern.should == /spec_helper.rb$/
|
||||||
specify { Guard::Watcher.new('.*_spec.rb').pattern.should == /.*_spec.rb/ }
|
Guard::Watcher.new('spec_helper\.rb').pattern.should == /spec_helper\.rb/
|
||||||
|
Guard::Watcher.new('.*_spec.rb').pattern.should == /.*_spec.rb/
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ describe Guard do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe ".locate_guard" do
|
describe ".locate_guard" do
|
||||||
it "should return guard-rspec gem path" do
|
it "returns guard-rspec gem path" do
|
||||||
guard_path = Guard.locate_guard('rspec')
|
guard_path = Guard.locate_guard('rspec')
|
||||||
guard_path.should match(/^.*\/guard-rspec-.*$/)
|
guard_path.should match(/^.*\/guard-rspec-.*$/)
|
||||||
guard_path.should == guard_path.chomp
|
guard_path.should == guard_path.chomp
|
||||||
@ -64,15 +64,15 @@ describe Guard do
|
|||||||
@g.stub!(:regular_with_arg).with("given_path") { "i'm a success" }
|
@g.stub!(:regular_with_arg).with("given_path") { "i'm a success" }
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should not fire the guard with a supervised method without argument" do
|
it "doesn't fire the guard with a supervised method without argument" do
|
||||||
lambda { subject.supervised_task(@g, :regular) }.should_not change(subject.guards, :size)
|
lambda { subject.supervised_task(@g, :regular) }.should_not change(subject.guards, :size)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should not fire the guard with a supervised method with argument" do
|
it "doesn't fire the guard with a supervised method with argument" do
|
||||||
lambda { subject.supervised_task(@g, :regular_with_arg, "given_path") }.should_not change(subject.guards, :size)
|
lambda { subject.supervised_task(@g, :regular_with_arg, "given_path") }.should_not change(subject.guards, :size)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should return the result of the supervised method" do
|
it "returns the result of the supervised method" do
|
||||||
::Guard.supervised_task(@g, :regular).should be_true
|
::Guard.supervised_task(@g, :regular).should be_true
|
||||||
::Guard.supervised_task(@g, :regular_with_arg, "given_path").should == "i'm a success"
|
::Guard.supervised_task(@g, :regular_with_arg, "given_path").should == "i'm a success"
|
||||||
end
|
end
|
||||||
@ -87,12 +87,12 @@ describe Guard do
|
|||||||
describe "tasks that raise an exception" do
|
describe "tasks that raise an exception" do
|
||||||
before(:each) { @g.stub!(:failing) { raise "I break your system" } }
|
before(:each) { @g.stub!(:failing) { raise "I break your system" } }
|
||||||
|
|
||||||
it "should fire the guard" do
|
it "fires the guard" do
|
||||||
lambda { subject.supervised_task(@g, :failing) }.should change(subject.guards, :size).by(-1)
|
lambda { subject.supervised_task(@g, :failing) }.should change(subject.guards, :size).by(-1)
|
||||||
subject.guards.should_not include(@g)
|
subject.guards.should_not include(@g)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should return the exception object" do
|
it "returns the exception object" do
|
||||||
failing_result = ::Guard.supervised_task(@g, :failing)
|
failing_result = ::Guard.supervised_task(@g, :failing)
|
||||||
failing_result.should be_kind_of(Exception)
|
failing_result.should be_kind_of(Exception)
|
||||||
failing_result.message.should == 'I break your system'
|
failing_result.message.should == 'I break your system'
|
||||||
@ -106,6 +106,11 @@ describe Guard do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe ".locate_guard" do
|
||||||
|
it "returns the path of the guard gem" do
|
||||||
|
Guard.locate_guard('rspec').should == Gem.source_index.find_name("guard-rspec").last.full_gem_path
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user