From f538d421d264290f8b6e11fa1b492e98ecc6d6b7 Mon Sep 17 00:00:00 2001 From: anniel-stripe <97691964+anniel-stripe@users.noreply.github.com> Date: Mon, 6 May 2024 16:05:56 -0700 Subject: [PATCH] Add more tests for request opts flow (#1398) * Add more tests for request opts flow * spurious change * fix return url --- test/stripe/api_resource_test.rb | 12 ++++++++++++ test/stripe/list_object_test.rb | 22 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/test/stripe/api_resource_test.rb b/test/stripe/api_resource_test.rb index 73d1184c..8e64640b 100644 --- a/test/stripe/api_resource_test.rb +++ b/test/stripe/api_resource_test.rb @@ -174,6 +174,18 @@ module Stripe ch = Stripe::Charge.retrieve("ch_123", "sk_test_local") ch.refunds.create end + + should "use the per-object credential when making subsequent requests on the object" do + stub_request(:get, "#{Stripe.api_base}/v1/customers/cus_123") + .with(headers: { "Authorization" => "Bearer sk_test_local", "Stripe-Account" => "acct_12345" }) + .to_return(body: JSON.generate(charge_fixture)) + stub_request(:delete, "#{Stripe.api_base}/v1/customers/cus_123") + .with(headers: { "Authorization" => "Bearer sk_test_local", "Stripe-Account" => "acct_12345" }) + .to_return(body: "{}") + + cus = Stripe::Customer.retrieve("cus_123", { api_key: "sk_test_local", stripe_account: "acct_12345" }) + cus.delete + end end end diff --git a/test/stripe/list_object_test.rb b/test/stripe/list_object_test.rb index ccbaff0e..7debc8bf 100644 --- a/test/stripe/list_object_test.rb +++ b/test/stripe/list_object_test.rb @@ -109,6 +109,28 @@ module Stripe assert_equal expected, list.auto_paging_each.to_a end + should "forward api key through #auto_paging_iter" do + arr = [ + { id: "ch_001" }, + { id: "ch_002" }, + ] + expected = Util.convert_to_stripe_object(arr, {}) + + stub_request(:get, "#{Stripe.api_base}/v1/charges") + .with(headers: { "Authorization" => "Bearer sk_test_iter_forwards_options" }) + .to_return(body: JSON.generate(data: [{ id: "ch_001" }], has_more: true, url: "/v1/charges", + object: "list")) + stub_request(:get, "#{Stripe.api_base}/v1/charges") + .with(headers: { "Authorization" => "Bearer sk_test_iter_forwards_options" }) + .with(query: { starting_after: "ch_001" }) + .to_return(body: JSON.generate(data: [{ id: "ch_002" }], has_more: false, url: "/v1/charges", + object: "list")) + + list = Stripe::Charge.list({}, { api_key: "sk_test_iter_forwards_options" }) + + assert_equal expected, list.auto_paging_each.to_a + end + should "provide #auto_paging_each that responds to a block" do arr = [ { id: 1 },