jasmine-headless-webkit/spec/spec_helper.rb

91 lines
1.9 KiB
Ruby

if ENV['COVERAGE']
require 'simplecov'
SimpleCov.start
end
require 'jasmine-headless-webkit'
require 'fakefs/spec_helpers'
RSpec.configure do |c|
c.mock_with :mocha
#c.backtrace_clean_patterns = []
c.before(:each) do
Jasmine::Headless::CacheableAction.enabled = false
Jasmine::Headless::FilesList.reset!
end
end
specrunner = 'ext/jasmine-webkit-specrunner/jasmine-webkit-specrunner'
if !File.file?(specrunner)
Dir.chdir File.split(specrunner).first do
system %{ruby extconf.rb}
end
end
class FakeFS::File
class << self
def fnmatch?(pattern, file)
RealFile.fnmatch?(pattern, file)
end
end
end
module RSpec::Matchers
define :be_a_report_containing do |total, failed, used_console|
match do |filename|
report(filename)
report.total.should == total
report.failed.should == failed
report.has_used_console?.should == used_console
true
end
failure_message_for_should do |filename|
"expected #{filename} to be a report containing (#{total}, #{failed}, #{used_console.inspect})"
end
def report(filename = nil)
@report ||= Jasmine::Headless::Report.load(filename)
end
end
define :contain_a_failing_spec do |*parts|
match do |filename|
report(filename).should have_failed_on(parts.join(" "))
end
def report(filename)
@report ||= Jasmine::Headless::Report.load(filename)
end
end
define :be_a_file do
match do |file|
File.file?(file)
end
end
define :contain_in_order_in_file_list do |*files|
match do |lines|
file_list = files.dup
lines.each do |line|
next if !file_list.first
if line[file_list.first]
file_list.shift
end
end
file_list.length == 0
end
failure_message_for_should do |lines|
%{expected\n#{lines.join("\n")}\nto contain the following files, in order:\n#{files.join("\n")}}
end
end
end