50 lines
1.0 KiB
Ruby
50 lines
1.0 KiB
Ruby
ENV['RACK_ENV'] = ENV['RAILS_ENV'] = ENV['ENV'] = 'test'
|
|
|
|
require 'rspec'
|
|
require 'travis/api/app'
|
|
require 'sinatra/test_helpers'
|
|
require 'logger'
|
|
require 'gh'
|
|
require 'multi_json'
|
|
|
|
Travis.logger = Logger.new(StringIO.new)
|
|
Travis::Api::App.setup
|
|
|
|
Backports.require_relative_dir 'support'
|
|
|
|
module TestHelpers
|
|
include Sinatra::TestHelpers
|
|
|
|
def custom_endpoints
|
|
@custom_endpoints ||= []
|
|
end
|
|
|
|
def add_endpoint(prefix, &block)
|
|
endpoint = Sinatra.new(Travis::Api::App::Endpoint, &block)
|
|
endpoint.set(prefix: prefix)
|
|
set_app Travis::Api::App.new
|
|
custom_endpoints << endpoint
|
|
end
|
|
|
|
def parsed_body
|
|
MultiJson.decode(body)
|
|
end
|
|
end
|
|
|
|
RSpec.configure do |config|
|
|
config.mock_framework = :mocha
|
|
config.expect_with :rspec, :stdlib
|
|
config.include TestHelpers
|
|
|
|
config.before :each do
|
|
::Redis.connect(url: Travis.config.redis.url).flushdb
|
|
set_app Travis::Api::App.new
|
|
end
|
|
|
|
config.after :each do
|
|
custom_endpoints.each do |endpoint|
|
|
endpoint.superclass.direct_subclasses.delete(endpoint)
|
|
end
|
|
end
|
|
end
|