diff --git a/.rubocop.yml b/.rubocop.yml index 90fb5e822..b7b0f37f1 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -27,6 +27,7 @@ Layout/HeredocIndentation: Layout/LineLength: Exclude: + - "lib/stripe/object_types.rb" - "lib/stripe/resources/**/*.rb" - "test/**/*.rb" diff --git a/.travis.yml b/.travis.yml index 8d9f93079..0a101f364 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ notifications: env: global: # If changing this number, please also change it in `test/test_helper.rb`. - - STRIPE_MOCK_VERSION=0.101.0 + - STRIPE_MOCK_VERSION=0.103.0 cache: directories: diff --git a/lib/stripe/object_types.rb b/lib/stripe/object_types.rb index 7b46c1df3..2883ded29 100644 --- a/lib/stripe/object_types.rb +++ b/lib/stripe/object_types.rb @@ -19,6 +19,7 @@ def self.object_names_to_classes Balance::OBJECT_NAME => Balance, BalanceTransaction::OBJECT_NAME => BalanceTransaction, BankAccount::OBJECT_NAME => BankAccount, + BillingPortal::Configuration::OBJECT_NAME => BillingPortal::Configuration, BillingPortal::Session::OBJECT_NAME => BillingPortal::Session, BitcoinReceiver::OBJECT_NAME => BitcoinReceiver, BitcoinTransaction::OBJECT_NAME => BitcoinTransaction, diff --git a/lib/stripe/resources.rb b/lib/stripe/resources.rb index 9a613841e..1f78267c1 100644 --- a/lib/stripe/resources.rb +++ b/lib/stripe/resources.rb @@ -9,6 +9,7 @@ require "stripe/resources/balance" require "stripe/resources/balance_transaction" require "stripe/resources/bank_account" +require "stripe/resources/billing_portal/configuration" require "stripe/resources/billing_portal/session" require "stripe/resources/bitcoin_receiver" require "stripe/resources/bitcoin_transaction" diff --git a/lib/stripe/resources/billing_portal/configuration.rb b/lib/stripe/resources/billing_portal/configuration.rb new file mode 100644 index 000000000..3b60682ec --- /dev/null +++ b/lib/stripe/resources/billing_portal/configuration.rb @@ -0,0 +1,14 @@ +# File generated from our OpenAPI spec +# frozen_string_literal: true + +module Stripe + module BillingPortal + class Configuration < APIResource + extend Stripe::APIOperations::Create + extend Stripe::APIOperations::List + include Stripe::APIOperations::Save + + OBJECT_NAME = "billing_portal.configuration" + end + end +end diff --git a/test/stripe/billing_portal/configuration_test.rb b/test/stripe/billing_portal/configuration_test.rb new file mode 100644 index 000000000..bc0ce6522 --- /dev/null +++ b/test/stripe/billing_portal/configuration_test.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require ::File.expand_path("../../test_helper", __dir__) + +module Stripe + module BillingPortal + class ConfigurationTest < Test::Unit::TestCase + should "be creatable" do + session = Stripe::BillingPortal::Configuration.create({ + business_profile: { + privacy_policy_url: "https://example.com/privacy", + terms_of_service_url: "https://example.com/tos", + }, + features: { customer_update: { allowed_updates: ["address"], enabled: true } }, + }) + assert_requested :post, "#{Stripe.api_base}/v1/billing_portal/configurations" + assert session.is_a?(Stripe::BillingPortal::Configuration) + end + should "be retrievable" do + session = Stripe::BillingPortal::Configuration.retrieve("bpc_xyz") + assert_requested :get, "#{Stripe.api_base}/v1/billing_portal/configurations/bpc_xyz" + assert session.is_a?(Stripe::BillingPortal::Configuration) + end + + should "be updateable" do + session = Stripe::BillingPortal::Configuration.update("bpc_xyz", { active: false }) + assert_requested :post, "#{Stripe.api_base}/v1/billing_portal/configurations/bpc_xyz" + assert session.is_a?(Stripe::BillingPortal::Configuration) + end + should "be listable" do + sessions = Stripe::BillingPortal::Configuration.list + assert_requested :get, "#{Stripe.api_base}/v1/billing_portal/configurations" + assert sessions.data[0].is_a?(Stripe::BillingPortal::Configuration) + end + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index 1c4299db8..1f8be5dc3 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -16,7 +16,7 @@ require ::File.expand_path("stripe_mock", __dir__) # If changing this number, please also change it in `.travis.yml`. -MOCK_MINIMUM_VERSION = "0.101.0" +MOCK_MINIMUM_VERSION = "0.103.0" MOCK_PORT = Stripe::StripeMock.start # Disable all real network connections except those that are outgoing to