fixed tests

This commit is contained in:
olegphenomenon 2023-01-13 13:28:29 +02:00
parent 36d629fe2b
commit c9ed31771b
4 changed files with 35 additions and 49 deletions

View file

@ -9,10 +9,6 @@ module EisBilling
before_action :load_invoice, only: :update before_action :load_invoice, only: :update
def update def update
p '=========='
p params
p '=========='
if @invoice.update(modified_params) && payment_orders_handler if @invoice.update(modified_params) && payment_orders_handler
render json: { render json: {
@ -30,43 +26,27 @@ module EisBilling
private private
def payment_orders_handler def payment_orders_handler
p '-----' return false if @invoice.cancelled? && status.paid? || @invoice.cancelled? && status.issued?
p @invoice.cancelled? return false if @invoice.paid? && (status.failed? || status.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?
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 @invoice.autobind_manually
else
@invoice.cancel
end end
end end
def status def status
status = case params[:status][:status] status = case params[:status]
when 'paid' when 'paid'
'paid' 'paid'
when 'cancelled' when 'cancelled'

View file

@ -35,7 +35,7 @@ module Invoice::Cancellable
def cancel_manualy def cancel_manualy
account_activity = AccountActivity.find_by(invoice_id: id) account_activity = AccountActivity.find_by(invoice_id: id)
account_activity_dup = account_activity.dup 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_dup.save
account_activity.update(invoice_id: nil) account_activity.update(invoice_id: nil)
account_activity_dup.update(invoice_id: nil) account_activity_dup.update(invoice_id: nil)

View file

@ -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: - -- 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: - -- Name: index_log_domains_on_whodunnit; Type: INDEX; Schema: public; Owner: -
-- --

View file

@ -38,7 +38,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'paid'
} }
@invoice.account_activity.delete && @invoice.reload @invoice.account_activity.delete && @invoice.reload
@ -65,7 +66,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'unpaid'
} }
assert_equal @invoice.payment_orders.pluck(:status), %w[issued issued] assert_equal @invoice.payment_orders.pluck(:status), %w[issued issued]
@ -89,7 +91,7 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
invoice.update(total: 120.0) invoice.update(total: 120.0)
invoice.reload invoice.reload
incoming_params = { incoming_params = {
invoice: { invoice: {
invoice_number: invoice.number, invoice_number: invoice.number,
initiator: 'registry', initiator: 'registry',
@ -101,7 +103,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'paid'
} }
assert invoice.payment_orders.empty? assert invoice.payment_orders.empty?
@ -130,7 +133,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'cancelled'
} }
@invoice.payment_orders.destroy_all and @invoice.account_activity.destroy @invoice.payment_orders.destroy_all and @invoice.account_activity.destroy
@ -165,7 +169,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'paid'
} }
assert invoice.payment_orders.empty? assert invoice.payment_orders.empty?
@ -208,7 +213,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'paid'
} }
put eis_billing_invoices_path, params: incoming_params put eis_billing_invoices_path, params: incoming_params
@ -237,7 +243,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'paid'
} }
assert invoice.payment_orders.empty? assert invoice.payment_orders.empty?
@ -271,7 +278,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'unpaid'
} }
put eis_billing_invoices_path, params: decrease_balance_params put eis_billing_invoices_path, params: decrease_balance_params
@ -296,7 +304,8 @@ class EInvoiceResponseTest < ApplicationIntegrationTest
'some' => 'some' 'some' => 'some'
}, },
sent_at_omniva: Time.zone.now - 10.minutes sent_at_omniva: Time.zone.now - 10.minutes
} },
status: 'paid'
} }
put eis_billing_invoices_path, params: incoming_params put eis_billing_invoices_path, params: incoming_params