diff --git a/.travis.yml b/.travis.yml index ac9035db..528fa10d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ sudo: false env: global: # If changing this number, please also change it in `test/test_helper.rb`. - - STRIPE_MOCK_VERSION=0.39.0 + - STRIPE_MOCK_VERSION=0.40.0 cache: directories: diff --git a/lib/stripe.rb b/lib/stripe.rb index 43bc6cd1..6014347f 100644 --- a/lib/stripe.rb +++ b/lib/stripe.rb @@ -49,6 +49,7 @@ require "stripe/bitcoin_receiver" require "stripe/bitcoin_transaction" require "stripe/card" require "stripe/charge" +require "stripe/checkout_session" require "stripe/country_spec" require "stripe/coupon" require "stripe/customer" diff --git a/lib/stripe/checkout_session.rb b/lib/stripe/checkout_session.rb new file mode 100644 index 00000000..0488b4fd --- /dev/null +++ b/lib/stripe/checkout_session.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module Stripe + class CheckoutSession < APIResource + extend Stripe::APIOperations::Create + + OBJECT_NAME = "checkout_session".freeze + end +end diff --git a/lib/stripe/util.rb b/lib/stripe/util.rb index a1b3f937..45715c67 100644 --- a/lib/stripe/util.rb +++ b/lib/stripe/util.rb @@ -58,6 +58,7 @@ module Stripe BitcoinTransaction::OBJECT_NAME => BitcoinTransaction, Card::OBJECT_NAME => Card, Charge::OBJECT_NAME => Charge, + CheckoutSession::OBJECT_NAME => CheckoutSession, CountrySpec::OBJECT_NAME => CountrySpec, Coupon::OBJECT_NAME => Coupon, Customer::OBJECT_NAME => Customer, diff --git a/test/stripe/checkout_session_test.rb b/test/stripe/checkout_session_test.rb new file mode 100644 index 00000000..2c5fdeb8 --- /dev/null +++ b/test/stripe/checkout_session_test.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require ::File.expand_path("../../test_helper", __FILE__) + +module Stripe + class CheckoutSessionTest < Test::Unit::TestCase + should "be creatable" do + session = Stripe::CheckoutSession.create( + allowed_source_types: ["card"], + cancel_url: "https://stripe.com/cancel", + client_reference_id: "1234", + line_items: [ + { + amount: 123, + currency: "usd", + description: "item 1", + images: [ + "https://stripe.com/img1", + ], + name: "name", + quantity: 2, + }, + ], + payment_intent_data: [ + receipt_email: "test@stripe.com", + ], + success_url: "https://stripe.com/success" + ) + assert_requested :post, "#{Stripe.api_base}/v1/checkout_sessions" + assert session.is_a?(Stripe::CheckoutSession) + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index d27cbd87..adafac79 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -16,7 +16,7 @@ PROJECT_ROOT = ::File.expand_path("../../", __FILE__) require ::File.expand_path("../test_data", __FILE__) # If changing this number, please also change it in `.travis.yml`. -MOCK_MINIMUM_VERSION = "0.39.0".freeze +MOCK_MINIMUM_VERSION = "0.40.0".freeze MOCK_PORT = ENV["STRIPE_MOCK_PORT"] || 12_111 # Disable all real network connections except those that are outgoing to