test/test_helper.rb in stripe-3.0.3 vs test/test_helper.rb in stripe-3.1.0

- old
+ new

@@ -1,41 +1,56 @@ -require 'committee' -require 'sinatra' require 'stripe' require 'test/unit' require 'mocha/setup' require 'stringio' require 'shoulda/context' +require "timecop" require 'webmock/test_unit' PROJECT_ROOT = File.expand_path("../../", __FILE__) -require File.expand_path('../api_fixtures', __FILE__) -require File.expand_path('../api_stub_helpers', __FILE__) require File.expand_path('../test_data', __FILE__) +MOCK_MINIMUM_VERSION = "0.1.12" +MOCK_PORT = ENV["STRIPE_MOCK_PORT"] || 12111 + +# Disable all real network connections except those that are outgoing to +# stripe-mock. +WebMock.disable_net_connect!(allow: "localhost:#{MOCK_PORT}") + +# Try one initial test connection to stripe-mock so that if there's a problem +# we can print one error and fail fast so that it's more clear to the user how +# they should fix the problem. +begin + resp = Faraday.get("http://localhost:#{MOCK_PORT}/") + version = resp.headers['Stripe-Mock-Version'] + if version != "master" && + Gem::Version.new(version) < Gem::Version.new(MOCK_MINIMUM_VERSION) + abort("Your version of stripe-mock (#{version}) is too old. The minimum " \ + "version to run this test suite is #{MOCK_MINIMUM_VERSION}. Please " \ + "see its repository for upgrade instructions.") + end +rescue Faraday::ConnectionFailed + abort("Couldn't reach stripe-mock at `localhost:#{MOCK_PORT}`. Is " \ + "it running? Please see README for setup instructions.") +end + class Test::Unit::TestCase - include APIStubHelpers include Stripe::TestData include Mocha - # Fixtures are available in tests using something like: - # - # API_FIXTURES[:charge][:id] - # - API_FIXTURES = APIFixtures.new - setup do - Stripe.api_key = "foo" - - # Stub the Stripe API with a default stub. Note that this method can be - # called again in test bodies in order to override responses on particular - # endpoints. - stub_api - + Stripe.api_key = "sk_test_123" + Stripe.api_base = "http://localhost:#{MOCK_PORT}" stub_connect end teardown do Stripe.api_key = nil + end + + private + + def stub_connect + stub_request(:any, /^#{Stripe.connect_base}/).to_return(:body => "{}") end end