зеркало из
https://github.com/glebtv/yookassa.git
synced 2026-09-08 20:05:50 +03:00
refund spec
Этот коммит содержится в:
@@ -10,6 +10,7 @@ require 'yandex-checkout/response'
|
|||||||
require 'yandex-checkout/callable'
|
require 'yandex-checkout/callable'
|
||||||
require 'yandex-checkout/optional'
|
require 'yandex-checkout/optional'
|
||||||
require 'yandex-checkout/entity/payment'
|
require 'yandex-checkout/entity/payment'
|
||||||
|
require 'yandex-checkout/entity/refund'
|
||||||
require 'yandex-checkout/error'
|
require 'yandex-checkout/error'
|
||||||
# require 'yandex-checkout/entity/amount'
|
# require 'yandex-checkout/entity/amount'
|
||||||
# require 'yandex-checkout/entity/payment_method'
|
# require 'yandex-checkout/entity/payment_method'
|
||||||
|
|||||||
8
spec/fixtures/refund.json
поставляемый
Обычный файл
8
spec/fixtures/refund.json
поставляемый
Обычный файл
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"amount": {
|
||||||
|
"value": "8.00",
|
||||||
|
"currency": "RUB"
|
||||||
|
},
|
||||||
|
"payment_id": "40484c25-1095-4d36-8b17-92672d1e127d",
|
||||||
|
"description": "test refund, idem-key 40484c25-1095-4d36-8b17-92672d1e127d"
|
||||||
|
}
|
||||||
11
spec/fixtures/refund_response.json
поставляемый
Обычный файл
11
spec/fixtures/refund_response.json
поставляемый
Обычный файл
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "2491ab0c-0015-5000-9000-1640c7f1a6f0",
|
||||||
|
"status": "succeeded",
|
||||||
|
"amount": {
|
||||||
|
"value": "8.00",
|
||||||
|
"currency": "RUB"
|
||||||
|
},
|
||||||
|
"created_at": "2019-06-11T11:58:04.502Z",
|
||||||
|
"description": "test refund, idem-key 78c95366-ec4b-4284-a0fd-41e694bcdf11",
|
||||||
|
"payment_id": "2491a6e2-000f-5000-9000-1480e820ae17"
|
||||||
|
}
|
||||||
54
spec/yandex-checkout/refund_spec.rb
Обычный файл
54
spec/yandex-checkout/refund_spec.rb
Обычный файл
@@ -0,0 +1,54 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
RSpec.describe YandexCheckout::Refund do
|
||||||
|
let(:settings) { { shop_id: 'SHOP_ID', api_key: 'API_KEY' } }
|
||||||
|
let(:idempotency_key) { 12_345 }
|
||||||
|
let(:payment) { described_class.new(settings) }
|
||||||
|
|
||||||
|
shared_examples 'returns_refund_object' do
|
||||||
|
it 'returns success' do
|
||||||
|
expect(subject).to be_kind_of YandexCheckout::Response
|
||||||
|
expect(subject.id).to eq '2491ab0c-0015-5000-9000-1640c7f1a6f0'
|
||||||
|
expect(subject.payment_id).to eq '2491a6e2-000f-5000-9000-1480e820ae17'
|
||||||
|
expect(subject.status).to eq 'succeeded'
|
||||||
|
expect(subject.created_at).to eq '2019-06-11T11:58:04.502Z'
|
||||||
|
expect(subject.description).to eq 'test refund, idem-key 78c95366-ec4b-4284-a0fd-41e694bcdf11'
|
||||||
|
|
||||||
|
expect(subject.amount).to be_kind_of YandexCheckout::Entity::Amount
|
||||||
|
expect(subject.amount.currency).to eq 'RUB'
|
||||||
|
expect(subject.amount.value).to eq 8.0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#create' do
|
||||||
|
let(:payload) { File.read('spec/fixtures/refund.json') }
|
||||||
|
let(:url) { 'https://payment.yandex.net/api/v3/refunds' }
|
||||||
|
let(:body) { File.read('spec/fixtures/refund_response.json') }
|
||||||
|
|
||||||
|
before { stub_request(:any, //).to_return(body: body) }
|
||||||
|
subject { payment.create(payload: payload, idempotency_key: idempotency_key) }
|
||||||
|
|
||||||
|
it 'sends a request' do
|
||||||
|
subject
|
||||||
|
expect(a_request(:post, url)).to have_been_made
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'returns_refund_object'
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#get_refund_info' do
|
||||||
|
let(:payment_id) { '2490ded1-000f-5000-8000-1f64111bc63e' }
|
||||||
|
let(:url) { "https://payment.yandex.net/api/v3/refunds/#{payment_id}" }
|
||||||
|
let(:body) { File.read('spec/fixtures/refund_response.json') }
|
||||||
|
|
||||||
|
before { stub_request(:any, //).to_return(body: body) }
|
||||||
|
subject { payment.get_refund_info(payment_id: payment_id) }
|
||||||
|
|
||||||
|
it 'sends a request' do
|
||||||
|
subject
|
||||||
|
expect(a_request(:get, url)).to have_been_made
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'returns_refund_object'
|
||||||
|
end
|
||||||
|
end
|
||||||
Ссылка в новой задаче
Block a user