if ENV['COVERAGE'] require 'simplecov' SimpleCov.start do add_filter '/spec/' end end $testing = true FLAPJACK_ENV = ENV["FLAPJACK_ENV"] || 'test' ENV['RACK_ENV'] = ENV["FLAPJACK_ENV"] require 'bundler' Bundler.require(:default, :test) require 'webmock/rspec' WebMock.disable_net_connect! $:.unshift(File.dirname(__FILE__) + '/../lib') # Requires supporting files with custom matchers and macros, etc, # in ./support/ and its subdirectories. Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f} class MockLogger attr_accessor :messages def initialize @messages = [] end %w(debug info warn error fatal).each do |level| class_eval <<-RUBY def #{level}(msg) @messages << msg end RUBY end end JsonSpec.configure do # so we include id exclude_keys "created_at", "updated_at" end # This file was generated by the `rspec --init` command. Conventionally, all # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. # Require this file using `require "spec_helper"` to ensure that it is only # loaded once. # # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration RSpec.configure do |config| config.treat_symbols_as_metadata_keys_with_true_values = true config.run_all_when_everything_filtered = true config.filter_run :focus # Run specs in random order to surface order dependencies. If you find an # order dependency and want to debug it, you can fix the order by providing # the seed, which is printed after each run. # --seed 1234 config.order = 'random' config.before(:each, :logger => true) do def test_logger(class_name) logger = Log4r::Logger.new(class_name) outp = Log4r::FileOutputter.new(class_name, :filename => File.join(File.dirname(__FILE__), '..', 'log', 'test.log')) outp.formatter = Log4r::PatternFormatter.new(:pattern => "[%l] %d :: #{class_name} :: %m", :date_pattern => "%Y-%m-%dT%H:%M:%S%z") logger.add(outp) logger end end config.around(:each, :redis => true) do |example| @redis = ::Redis.new(:db => 14, :driver => :ruby) @redis.flushdb example.run @redis.quit end config.around(:each, :logger => true) do |example| @logger = MockLogger.new example.run #messages = @logger.messages.compact #p "logger: " + messages.join(", ") unless messages.empty? @logger.messages.clear end config.after(:each, :time => true) do Delorean.back_to_the_present end config.include HamlViewHelper, :haml_view => true config.include Rack::Test::Methods, :sinatra => true config.include JsonSpec::Helpers, :json => true end