Sha256: f8dea2f456a8839ced9a4168d404f8d750b94bcec741a4cc05a1b0c249f5497f
Contents?: true
Size: 1.9 KB
Versions: 5
Compression:
Stored size: 1.9 KB
Contents
PROJECT_ROOT = File.join(File.dirname(__FILE__), '..') if ENV['COVERAGE'] require 'simplecov' SimpleCov.start do add_filter "/spec/" end end require 'puppet_forge' module StubbingFaraday def stub_api_for(klass, base_url = "http://api.example.com") allow(klass).to receive(:conn) do Faraday.new :url => base_url do |builder| builder.response(:json, :content_type => /\bjson$/, :parser_options => { :symbolize_names => true }) builder.response(:raise_error) builder.use(:connection_failure) builder.adapter(:test) { |s| yield(s) } end end stubs = Faraday::Adapter::Test::Stubs.new end def stub_fixture(stubs, method, path) stubs.send(method, path) do |env| load_fixture([ env[:url].path, env[:url].query ].compact.join('?')) end end def load_fixture(path) xplatform_path = path.to_s.gsub('?', '__') [ 404 ].tap do |response| local = File.join(PROJECT_ROOT, 'spec', 'fixtures', xplatform_path) if File.exists?("#{local}.headers") && File.exists?("#{local}.json") File.open("#{local}.headers") do |file| response[0] = file.readline[/\d{3}/].to_i response[1] = headers = {} file.read.scan(/^([^:]+?):(.*)/) do |key, val| headers[key] = val.strip end end response << File.read("#{local}.json") end end end end RSpec.configure do |config| config.run_all_when_everything_filtered = true config.filter_run :focus config.include StubbingFaraday # 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(:example) do @old_host = PuppetForge.host end config.after(:example) do PuppetForge.host = @old_host end end
Version data entries
5 entries across 5 versions & 1 rubygems