pass other options into jhw

This commit is contained in:
John Bintz 2011-09-14 10:06:55 -04:00
parent c2a3635083
commit 9b6cb02d06
4 changed files with 36 additions and 11 deletions

View File

@ -12,13 +12,18 @@ module Guard
attr_reader :files_to_rerun
def initialize(watchers = [], options = {})
super
@options = {
DEFAULT_OPTIONS = {
:all_on_start => true,
:run_before => false,
:valid_extensions => DEFAULT_EXTENSIONS
}.merge(options)
}
def initialize(watchers = [], options = {})
super
@options = DEFAULT_OPTIONS.merge(options)
@filtered_options = options
DEFAULT_OPTIONS.keys.each { |key| @filtered_options.delete(key) }
UI.deprecation ":run_before is deprecated. Use guard-shell to do something beforehand. This will be removed in a future release." if @options[:run_before]
@ -68,7 +73,7 @@ module Guard
UI.info(SOME_SPECS_MESSAGE % paths.join(' '))
end
if failed_files = JasmineHeadlessWebkitRunner.run(paths)
if failed_files = JasmineHeadlessWebkitRunner.run(paths, @filtered_options)
@files_to_rerun = failed_files
end

View File

@ -4,11 +4,13 @@ require 'jasmine-headless-webkit'
module Guard
class JasmineHeadlessWebkitRunner
class << self
def run(paths = [])
def run(paths = [], options = {})
file = Tempfile.new('guard-jasmine-headless-webkit')
file.close
Jasmine::Headless::Runner.run(:report => file.path, :colors => true, :files => paths)
options.merge!(:report => file.path, :colors => true, :files => paths)
Jasmine::Headless::Runner.run(options)
notify(file.path)
end

View File

@ -3,6 +3,14 @@ require 'guard/jasmine-headless-webkit/runner'
require 'fakefs/spec_helpers'
describe Guard::JasmineHeadlessWebkitRunner do
describe '.run' do
it 'should pass along options' do
Jasmine::Headless::Runner.expects(:run).with(has_key(:full_run))
Guard::JasmineHeadlessWebkitRunner.run([], :full_run => false)
end
end
describe '.notify' do
include FakeFS::SpecHelpers

View File

@ -57,6 +57,16 @@ describe Guard::JasmineHeadlessWebkit do
guard.files_to_rerun.should == []
end
end
context 'pass along jhw options' do
let(:options) { { :all_on_start => false, :full_run => false } }
it 'should only pass along jhw options' do
Guard::JasmineHeadlessWebkitRunner.expects(:run).with([], :full_run => false)
guard.run_all
end
end
end
describe '#run_on_change' do
@ -64,7 +74,7 @@ describe Guard::JasmineHeadlessWebkit do
context 'two files' do
it "should only run one" do
Guard::JasmineHeadlessWebkitRunner.expects(:run).with(one_file).returns(one_file)
Guard::JasmineHeadlessWebkitRunner.expects(:run).with(one_file, {}).returns(one_file)
guard.run_on_change(%w{test.js test.js}).should be_false
guard.files_to_rerun.should == one_file
@ -83,7 +93,7 @@ describe Guard::JasmineHeadlessWebkit do
context 'one file one prior' do
it "should not run all" do
guard.instance_variable_set(:@files_to_rerun, [ "two.js" ])
Guard::JasmineHeadlessWebkitRunner.expects(:run).with(one_file + [ "two.js" ]).returns(one_file)
Guard::JasmineHeadlessWebkitRunner.expects(:run).with(one_file + [ "two.js" ], {}).returns(one_file)
guard.run_on_change(one_file).should be_false
guard.files_to_rerun.should == one_file
@ -93,7 +103,7 @@ describe Guard::JasmineHeadlessWebkit do
context 'failed hard' do
it "should not run all" do
guard.instance_variable_set(:@files_to_rerun, one_file)
Guard::JasmineHeadlessWebkitRunner.expects(:run).with(one_file).returns(nil)
Guard::JasmineHeadlessWebkitRunner.expects(:run).with(one_file, {}).returns(nil)
guard.run_on_change(one_file).should be_false
guard.files_to_rerun.should == one_file