85 lines
2.3 KiB
Ruby
85 lines
2.3 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Guard::JasmineHeadlessWebkit::Runner do
|
|
describe '.run' do
|
|
let(:reporter) { 'reporter' }
|
|
|
|
before do
|
|
described_class.stubs(:process_reporters).returns([ reporter ])
|
|
end
|
|
|
|
it 'should pass along options' do
|
|
Jasmine::Headless::Runner.expects(:run).with(all_of(has_key(:full_run), has_entry(:reporters => [ reporter ])))
|
|
|
|
Guard::JasmineHeadlessWebkit::Runner.run([], :full_run => false)
|
|
end
|
|
end
|
|
|
|
describe '.process_reporters' do
|
|
subject { described_class.process_reporters(reporters, report_file) }
|
|
|
|
let(:report_file) { 'report file' }
|
|
|
|
context 'none provided' do
|
|
let(:reporters) { nil }
|
|
|
|
it { should == [ [ 'Console' ], [ 'File', report_file ] ] }
|
|
end
|
|
|
|
context 'one provided' do
|
|
let(:reporters) { 'One' }
|
|
|
|
it { should == [ [ 'One' ], [ 'File', report_file ] ] }
|
|
end
|
|
|
|
context 'two provided' do
|
|
let(:reporters) { 'One Two:file.txt' }
|
|
|
|
it { should == [ [ 'One' ], [ 'Two', 'file.txt' ], [ 'File', report_file ] ] }
|
|
end
|
|
end
|
|
|
|
describe '.notify' do
|
|
include FakeFS::SpecHelpers
|
|
|
|
let(:file) { 'temp.txt' }
|
|
|
|
before do
|
|
File.open(file, 'w') { |fh| fh.print data }
|
|
end
|
|
|
|
context 'system run not interrupted' do
|
|
let(:data) { 'TOTAL||1||0||5||F' }
|
|
|
|
it 'should notify with the right information' do
|
|
Guard::Notifier.expects(:notify).with("1 test, 0 failures, 5.0 secs.", { :title => 'Jasmine results', :image => :success })
|
|
|
|
Guard::JasmineHeadlessWebkit::Runner.notify(file).should == []
|
|
end
|
|
end
|
|
|
|
context 'with failures' do
|
|
let(:data) { <<-REPORT }
|
|
FAIL||Test||Two||file.js:50
|
|
TOTAL||1||1||5||F
|
|
REPORT
|
|
|
|
it 'should notify with the right information' do
|
|
Guard::Notifier.expects(:notify).with("1 test, 1 failures, 5.0 secs.", { :title => 'Jasmine results', :image => :failed })
|
|
|
|
Guard::JasmineHeadlessWebkit::Runner.notify(file).should == [ 'file.js' ]
|
|
end
|
|
end
|
|
|
|
context 'system run interrupted' do
|
|
let(:data) { '' }
|
|
|
|
it 'should notify failure' do
|
|
Guard::Notifier.expects(:notify).with("Spec runner interrupted!", { :title => 'Jasmine results', :image => :failed })
|
|
|
|
Guard::JasmineHeadlessWebkit::Runner.notify(file).should be_false
|
|
end
|
|
end
|
|
end
|
|
end
|