diff --git a/test/integration/eis_billing/lhv_connect_transactions_test.rb b/test/integration/eis_billing/lhv_connect_transactions_test.rb new file mode 100644 index 000000000..38c15dd50 --- /dev/null +++ b/test/integration/eis_billing/lhv_connect_transactions_test.rb @@ -0,0 +1,29 @@ +require 'test_helper' + +class LhvConnectTransactionsIntegrationTest < ApplicationIntegrationTest + setup do + @invoice = invoices(:unpaid) + sign_in users(:api_bestnames) + end + + def test_should_saved_transaction_data + test_transaction = OpenStruct.new(amount: 0.1, + currency: 'EUR', + date: Time.zone.today, + payment_reference_number: '2199812', + payment_description: "description 2199812") + + lhv_transactions = [] + + 3.times do + lhv_transactions << test_transaction + end + + assert_difference 'BankStatement.count', 3 do + assert_difference 'BankTransaction.count', 3 do + post eis_billing_lhv_connect_transactions_path, params: { "_json" => JSON.parse(lhv_transactions.to_json) }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end + end + end +end diff --git a/test/integration/eis_billing/payment_status_test.rb b/test/integration/eis_billing/payment_status_test.rb index f9e1e1006..0cc5f7514 100644 --- a/test/integration/eis_billing/payment_status_test.rb +++ b/test/integration/eis_billing/payment_status_test.rb @@ -6,17 +6,14 @@ class PaymentStatusIntegrationTest < ApplicationIntegrationTest sign_in users(:api_bestnames) end - def test_update_payment_status + def test_update_payment_status_should_create_succesfully_billing_instaces payload = { "order_reference" => @invoice.number, - "paid_at" => Time.zone.now - 2.minute, - "sum" => @invoice.total, + "transaction_time" => Time.zone.now - 2.minute, + "standing_amount" => @invoice.total, "payment_state" => 'settled' } - p @invoice.payment_orders.count - p BankTransaction.count - assert_difference -> { @invoice.payment_orders.count } do assert_difference -> { BankTransaction.count } do put eis_billing_payment_status_path, params: payload, @@ -24,6 +21,36 @@ class PaymentStatusIntegrationTest < ApplicationIntegrationTest end end + bank_transaction = BankTransaction.order(created_at: :desc).first + invoice_payment_order = @invoice.payment_orders.order(created_at: :desc).first + + assert_equal bank_transaction.sum, @invoice.total + assert_equal invoice_payment_order.status, "paid" + assert_equal @invoice.account_activity.activity_type, "add_credit" + + assert_response :ok + end + + def test_update_payment_status_should_create_failed_payment + payload = { + "order_reference" => @invoice.number, + "transaction_time" => Time.zone.now - 2.minute, + "standing_amount" => @invoice.total, + "payment_state" => 'cancelled' + } + + assert_difference -> { @invoice.payment_orders.count } do + assert_difference -> { BankTransaction.count } do + put eis_billing_payment_status_path, params: payload, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + end + end + + bank_transaction = BankTransaction.order(created_at: :desc).first + invoice_payment_order = @invoice.payment_orders.order(created_at: :desc).first + + assert_equal bank_transaction.sum, @invoice.total + assert_equal invoice_payment_order.status, "failed" assert_equal @invoice.account_activity.activity_type, "add_credit" assert_response :ok