# frozen_string_literal: true RSpec.describe StrikeMe::API::Invoices do subject { described_class.new } describe 'list' do context 'success response' do before { stub_request(:get, 'https://api.strike.me/v1/invoices').to_return(status: 200, body: '{"items":[{"invoiceId":"97dca64c-6dde-4a87-b970-279f1a8e0ac5","amount":{"amount":"0.00014","currency":"BTC"},"state":"PAID","created":"2025-08-08T22:28:44.195825+00:00","description":"Hi there","issuerId":"41952e07-483c-4cd7-afa4-b6a8ec729809","receiverId":"41952e07-483c-4cd7-afa4-b6a8ec729809","payerId":"f75c22bf-625f-4c47-acdf-acb9c596bb8c"},{"invoiceId":"aed2cbf7-e2cd-4a1c-874e-a84489342ac2","amount":{"amount":"8.00","currency":"USD"},"state":"PAID","created":"2025-07-31T22:24:19.302922+00:00","description":"","issuerId":"a34a9cdc-1853-4f3b-9bd8-66d6700b1558","receiverId":"a34a9cdc-1853-4f3b-9bd8-66d6700b1558","payerId":"f75c22bf-625f-4c47-acdf-acb9c596bb8c"},{"invoiceId":"4773efeb-9aa7-47a0-a3cc-0a57a3f7718a","amount":{"amount":"0.00047455","currency":"BTC"},"state":"PAID","created":"2025-07-10T23:22:28.324613+00:00","description":"","issuerId":"a34a9cdc-1853-4f3b-9bd8-66d6700b1558","receiverId":"a34a9cdc-1853-4f3b-9bd8-66d6700b1558","payerId":"f75c22bf-625f-4c47-acdf-acb9c596bb8c"},{"invoiceId":"f3853f94-d198-4b83-8b9a-11a836926819","amount":{"amount":"40.00","currency":"USDT"},"state":"UNPAID","created":"2023-05-20T22:44:36.856775+00:00","description":"","issuerId":"f75c22bf-625f-4c47-acdf-acb9c596bb8c","receiverId":"f75c22bf-625f-4c47-acdf-acb9c596bb8c"}],"count":4,"isCountUnknown":false}', headers: {'Content-Type' => 'application/json'}) } it '...' do list = subject.list expect(list.first).to be_paid expect(list.last ).not_to be_paid expect(list.first.attributes).to eq( 'invoiceId' => '97dca64c-6dde-4a87-b970-279f1a8e0ac5', 'amount' => {'amount' => '0.00014', 'currency' => 'BTC'}, 'state' => 'PAID', 'created' => '2025-08-08 22:28:44.195825 +0000', # is actual Time 'description' => 'Hi there', 'issuerId' => '41952e07-483c-4cd7-afa4-b6a8ec729809', 'receiverId' => '41952e07-483c-4cd7-afa4-b6a8ec729809', 'payerId' => 'f75c22bf-625f-4c47-acdf-acb9c596bb8c' ) expect(list.first.created).to be_a Time expect(list.last.attributes).to eq( 'invoiceId' => 'f3853f94-d198-4b83-8b9a-11a836926819', 'amount' => {'amount' => '40.00', 'currency' => 'USDT'}, 'state' => 'UNPAID', 'created' => '2023-05-20 22:44:36.856775 +0000', 'description' => '', 'issuerId' => 'f75c22bf-625f-4c47-acdf-acb9c596bb8c', 'receiverId' => 'f75c22bf-625f-4c47-acdf-acb9c596bb8c', 'payerId' => nil ) end end end end