|
476 | 476 |
|
477 | 477 | describe "idempotency" do
|
478 | 478 | let(:customer) { Stripe:: Customer.create(email: '[email protected]') }
|
479 |
| - let(:idempotent_charge_params) {{ |
| 479 | + let(:charge_params) {{ |
480 | 480 | amount: 777,
|
481 | 481 | currency: 'USD',
|
482 | 482 | customer: customer.id,
|
483 |
| - capture: true, |
| 483 | + capture: true |
| 484 | + }} |
| 485 | + let(:charge_headers) {{ |
484 | 486 | idempotency_key: 'onceisenough'
|
485 | 487 | }}
|
486 | 488 |
|
487 | 489 | it "returns the original charge if the same idempotency_key is passed in" do
|
488 |
| - charge1 = Stripe::Charge.create(idempotent_charge_params) |
489 |
| - charge2 = Stripe::Charge.create(idempotent_charge_params) |
| 490 | + charge1 = Stripe::Charge.create(charge_params, charge_headers) |
| 491 | + charge2 = Stripe::Charge.create(charge_params, charge_headers) |
490 | 492 |
|
491 | 493 | expect(charge1).to eq(charge2)
|
492 | 494 | end
|
493 | 495 |
|
494 |
| - it "returns different charges if different idempotency_keys are used for each charge" do |
495 |
| - idempotent_charge_params2 = idempotent_charge_params.clone |
496 |
| - idempotent_charge_params2[:idempotency_key] = 'thisoneisdifferent' |
| 496 | + context 'different key' do |
| 497 | + let(:different_charge_headers) {{ |
| 498 | + idempotency_key: 'thisoneisdifferent' |
| 499 | + }} |
497 | 500 |
|
498 |
| - charge1 = Stripe::Charge.create(idempotent_charge_params) |
499 |
| - charge2 = Stripe::Charge.create(idempotent_charge_params2) |
| 501 | + it "returns different charges if different idempotency_keys are used for each charge" do |
| 502 | + charge1 = Stripe::Charge.create(charge_params, charge_headers) |
| 503 | + charge2 = Stripe::Charge.create(charge_params, different_charge_headers) |
500 | 504 |
|
501 |
| - expect(charge1).not_to eq(charge2) |
| 505 | + expect(charge1).not_to eq(charge2) |
| 506 | + end |
502 | 507 | end
|
503 | 508 | end
|
504 | 509 |
|
|
0 commit comments