require 'spec_helper' require 'fakefs/spec_helpers' require 'jasmine/headless/task' require 'mocha' describe Jasmine::Headless::Task do before do Jasmine::Headless::Task.any_instance.stubs(:desc) Jasmine::Headless::Task.any_instance.stubs(:task) end after do Object.send(:remove_const, :Rails) if defined?(Rails) end describe 'define task' do context 'without Rails' do it 'should not explode when Rails is undefined' do Jasmine::Headless::Task.new('jasmine:headless') end end context 'with Rails' do before do module Rails def self.version return "0" end end end it 'should be OK if rails is defined' do Jasmine::Headless::Task.new('jasmine:headless') end end end describe 'jasmine:headless integration test' do context 'with successful test' do let(:test) do described_class.new do |t| t.jasmine_config = "spec/jasmine/success/success.yml" end end it 'should do nothing on success' do expect { test.send(:run_rake_task) }.to_not raise_error end end context 'with failing test' do let(:test) do described_class.new do |t| t.jasmine_config = "spec/jasmine/failure/failure.yml" end end it 'should raise an exception on failure' do expect { test.send(:run_rake_task) }.to raise_error(Jasmine::Headless::TestFailure) end end context 'with console.log using test' do let(:test) do described_class.new do |t| t.jasmine_config = "spec/jasmine/console_log/console_log.yml" end end it 'should raise an exception on console.log usage' do expect { test.send(:run_rake_task) }.to raise_error(Jasmine::Headless::ConsoleLogUsage) end end end end