From c9ed31771bba048da182b7e8dc99e887da1d6b78 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Fri, 13 Jan 2023 13:28:29 +0200 Subject: [PATCH] fixed tests --- .../eis_billing/invoices_controller.rb | 50 ++++++------------- app/models/concerns/invoice/cancellable.rb | 2 +- db/structure.sql | 3 -- test/integration/eis_billing/invoices_test.rb | 29 +++++++---- 4 files changed, 35 insertions(+), 49 deletions(-) diff --git a/app/controllers/eis_billing/invoices_controller.rb b/app/controllers/eis_billing/invoices_controller.rb index d7150f8a1..fb9ee04d1 100644 --- a/app/controllers/eis_billing/invoices_controller.rb +++ b/app/controllers/eis_billing/invoices_controller.rb @@ -9,10 +9,6 @@ module EisBilling before_action :load_invoice, only: :update def update - p '==========' - p params - p '==========' - if @invoice.update(modified_params) && payment_orders_handler render json: { @@ -30,43 +26,27 @@ module EisBilling private def payment_orders_handler - p '-----' - p @invoice.cancelled? - p status.issued? - p status - p '------' - - if @invoice.payment_orders.present? - if @invoice.cancelled? && status.paid? || @invoice.cancelled? && status.issued? - @invoice.errors.add(:base, 'Unable to change status of record') - - return false - end - - if @invoice.paid? && (status.failed? || status.cancelled?) - @invoice.errors.add(:base, 'Unable to change status of record') - - return false - end - - return true if (@invoice.paid? && status.paid?) || (@invoice.unpaid? && status.issued?) || (@invoice.cancelled? && status.cancelled?) - - if status.issued? - @invoice.cancel_manualy - elsif status.paid? - @invoice.autobind_manually - else - @invoice.cancel - end - else - return unless status.paid? + return false if @invoice.cancelled? && status.paid? || @invoice.cancelled? && status.issued? + return false if @invoice.paid? && (status.failed? || status.cancelled?) + case + when @invoice.paid? && status.paid? + true + when @invoice.unpaid? && status.issued? + true + when @invoice.cancelled? && (status.cancelled? || status.failed?) + true + when status.issued? + @invoice.cancel_manualy + when status.paid? @invoice.autobind_manually + else + @invoice.cancel end end def status - status = case params[:status][:status] + status = case params[:status] when 'paid' 'paid' when 'cancelled' diff --git a/app/models/concerns/invoice/cancellable.rb b/app/models/concerns/invoice/cancellable.rb index 29c09f47c..df1211979 100644 --- a/app/models/concerns/invoice/cancellable.rb +++ b/app/models/concerns/invoice/cancellable.rb @@ -35,7 +35,7 @@ module Invoice::Cancellable def cancel_manualy account_activity = AccountActivity.find_by(invoice_id: id) account_activity_dup = account_activity.dup - account_activity_dup.sum = -account_activity.sum.to_i + account_activity_dup.sum = -account_activity.sum.to_f account_activity_dup.save account_activity.update(invoice_id: nil) account_activity_dup.update(invoice_id: nil) diff --git a/db/structure.sql b/db/structure.sql index b10129d30..6286053ce 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -4447,7 +4447,6 @@ CREATE INDEX index_log_domains_on_object ON public.log_domains USING gin (object -- -<<<<<<< HEAD -- Name: index_log_domains_on_object_changes; Type: INDEX; Schema: public; Owner: - -- @@ -4455,8 +4454,6 @@ CREATE INDEX index_log_domains_on_object_changes ON public.log_domains USING gin -- -======= ->>>>>>> creating sync with billing -- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: - -- diff --git a/test/integration/eis_billing/invoices_test.rb b/test/integration/eis_billing/invoices_test.rb index 55ea9e99a..682b29623 100644 --- a/test/integration/eis_billing/invoices_test.rb +++ b/test/integration/eis_billing/invoices_test.rb @@ -38,7 +38,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'paid' } @invoice.account_activity.delete && @invoice.reload @@ -65,7 +66,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'unpaid' } assert_equal @invoice.payment_orders.pluck(:status), %w[issued issued] @@ -89,7 +91,7 @@ class EInvoiceResponseTest < ApplicationIntegrationTest invoice.update(total: 120.0) invoice.reload - incoming_params = { + incoming_params = { invoice: { invoice_number: invoice.number, initiator: 'registry', @@ -101,7 +103,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'paid' } assert invoice.payment_orders.empty? @@ -130,7 +133,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'cancelled' } @invoice.payment_orders.destroy_all and @invoice.account_activity.destroy @@ -165,7 +169,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'paid' } assert invoice.payment_orders.empty? @@ -208,7 +213,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'paid' } put eis_billing_invoices_path, params: incoming_params @@ -237,7 +243,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'paid' } assert invoice.payment_orders.empty? @@ -271,7 +278,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'unpaid' } put eis_billing_invoices_path, params: decrease_balance_params @@ -296,7 +304,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest 'some' => 'some' }, sent_at_omniva: Time.zone.now - 10.minutes - } + }, + status: 'paid' } put eis_billing_invoices_path, params: incoming_params