jasmine-headless-webkit/spec/lib/jasmine/headless/runner_spec.rb
2011-06-16 10:11:37 -04:00

73 lines
1.9 KiB
Ruby

require 'spec_helper'
require 'fakefs/spec_helpers'
require 'jasmine/headless/runner'
describe Jasmine::Headless::Runner do
let(:runner) { Jasmine::Headless::Runner.new(options) }
let(:options) { Jasmine::Headless::Options.new(opts) }
describe '#initialize' do
let(:opts) { { :test => 'test' } }
it 'should have default options' do
runner.options[:test].should == 'test'
runner.options[:jasmine_config].should == 'spec/javascripts/support/jasmine.yml'
end
end
describe '#load_config' do
include FakeFS::SpecHelpers
let(:opts) { { :jasmine_config => 'test.yml' } }
before do
File.open(Jasmine::Headless::Runner::RUNNER, 'w')
File.open('test.yml', 'w') { |fh| fh.print YAML.dump('test' => 'hello') }
end
it 'should load the jasmine config' do
runner.jasmine_config['test'].should == 'hello'
runner.jasmine_config['spec_dir'].should == 'spec/javascripts'
end
end
describe '#jasmine_command' do
let(:opts) { {
:colors => true,
:report => 'test'
} }
it 'should have the right options' do
runner.jasmine_command.should match(/jasmine-webkit-specrunner/)
runner.jasmine_command.should match(/-c/)
runner.jasmine_command.should match(/-r test/)
runner.jasmine_command('file.js').should match(/file.js/)
end
end
context 'real tests' do
let(:report) { 'spec/report.txt' }
before do
FileUtils.rm_f report
end
after do
FileUtils.rm_f report
end
it 'should succeed with error code 0' do
Jasmine::Headless::Runner.run(
:jasmine_config => 'spec/jasmine/success/success.yml',
:report => report
).should == 0
report.should be_a_report_containing(1, 0, false)
end
it 'should succeed but with javascript error' do
Jasmine::Headless::Runner.run(:jasmine_config => 'spec/jasmine/success_with_error/success_with_error.yml').should == 1
end
end
end