mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-12-24 00:03:38 -05:00
* Bump Rubocop to 0.57.2
* Style/StderrPuts: Use warn instead of .puts
* Style/ExpandPathArguments: Use expand_path('../test_helper', __dir__) instead of expand_path('../../test_helper', __FILE__)
* Style/Encoding: Unnecessary utf-8 encoding comment
* Style/StringLiterals: Prefer double-quoted strings
* Style/AccessModifierDeclarations
* Style/FormatStringToken: Prefer annotated tokens
* Naming/UncommunicativeMethodParamName
* Metrics/LineLength: set maximum line length to 100 characters
* Style/IfUnlessModifier: Favor modifier if usage when having a single-line body
* Style/ClassVars
* Metrics/LineLength: set maximum line length to 80 characters (default)
* Style/AccessModifierDeclarations: EnforcedStyle: inline
72 lines
1.9 KiB
Ruby
72 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "coveralls"
|
|
Coveralls.wear!("test_frameworks")
|
|
|
|
require "stripe"
|
|
require "test/unit"
|
|
require "mocha/setup"
|
|
require "stringio"
|
|
require "shoulda/context"
|
|
require "timecop"
|
|
require "webmock/test_unit"
|
|
|
|
PROJECT_ROOT = ::File.expand_path("../", __dir__)
|
|
|
|
require ::File.expand_path("test_data", __dir__)
|
|
require ::File.expand_path("stripe_mock", __dir__)
|
|
|
|
# If changing this number, please also change it in `.travis.yml`.
|
|
MOCK_MINIMUM_VERSION = "0.57.0".freeze
|
|
MOCK_PORT = Stripe::StripeMock.start
|
|
|
|
# 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
|
|
conn = Faraday::Connection.new("http://localhost:#{MOCK_PORT}")
|
|
resp = conn.get("/")
|
|
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
|
|
|
|
Test::Unit.at_exit do
|
|
Stripe::StripeMock.stop
|
|
end
|
|
|
|
module Test
|
|
module Unit
|
|
class TestCase
|
|
include Stripe::TestData
|
|
include Mocha
|
|
|
|
setup do
|
|
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
|
|
end
|
|
end
|