From c52da86865999032367e6757ab6cca3b209e3300 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Fri, 2 Sep 2022 13:32:02 +0300 Subject: [PATCH] remove eis-billing feature toggle --- .../eis_billing/base_controller.rb | 7 -- app/jobs/send_e_invoice_job.rb | 19 ++-- ...wo_job.rb => send_e_invoice_legacy_job.rb} | 21 ++-- app/models/billing/reference_no.rb | 9 +- app/models/invoice.rb | 28 +----- app/models/registrar.rb | 17 +--- db/structure.sql | 2 + test/integration/admin_area/invoices_test.rb | 32 +++---- .../eis_billing/directo_response_test.rb | 38 ++++---- .../lhv_connect_transactions_test.rb | 2 - .../repp/v1/invoices/add_credit_test.rb | 12 +-- test/models/bank_transaction_test.rb | 6 -- test/models/billing/reference_no_test.rb | 10 +- test/models/feature_test.rb | 49 ---------- test/models/invoice_test.rb | 88 ++++++++--------- test/models/registrar_test.rb | 54 +++++------ test/system/admin_area/bank_statement_test.rb | 48 +++++----- test/system/admin_area/registrars_test.rb | 38 ++++---- .../billing/balance_top_up_test.rb | 40 ++++---- .../registrar_area/invoices/new_test.rb | 76 +++++++-------- test/tasks/invoices/process_payments_test.rb | 8 +- test/tasks/registrars/reload_balance_test.rb | 96 +++++++++---------- 22 files changed, 278 insertions(+), 422 deletions(-) rename app/jobs/{send_e_invoice_two_job.rb => send_e_invoice_legacy_job.rb} (64%) diff --git a/app/controllers/eis_billing/base_controller.rb b/app/controllers/eis_billing/base_controller.rb index a475472b9..ad2b71f3a 100644 --- a/app/controllers/eis_billing/base_controller.rb +++ b/app/controllers/eis_billing/base_controller.rb @@ -3,7 +3,6 @@ module EisBilling protect_from_forgery with: :null_session skip_authorization_check # Temporary solution # skip_before_action :verify_authenticity_token # Temporary solution - before_action :persistent before_action :authorized INITIATOR = 'billing'.freeze @@ -49,11 +48,5 @@ module EisBilling def logger Rails.logger end - - def persistent - return true if Feature.billing_system_integrated? - - render json: { message: "We don't work yet!" }, status: :unauthorized - end end end diff --git a/app/jobs/send_e_invoice_job.rb b/app/jobs/send_e_invoice_job.rb index c48dccd2a..02cad898c 100644 --- a/app/jobs/send_e_invoice_job.rb +++ b/app/jobs/send_e_invoice_job.rb @@ -6,7 +6,8 @@ class SendEInvoiceJob < ApplicationJob invoice = Invoice.find_by(id: invoice_id) return unless need_to_process_invoice?(invoice: invoice, payable: payable) - process(invoice: invoice, payable: payable) + send_invoice_to_eis_billing(invoice: invoice, payable: payable) + invoice.update(e_invoice_sent_at: Time.zone.now) rescue StandardError => e log_error(invoice: invoice, error: e) raise e @@ -16,23 +17,15 @@ class SendEInvoiceJob < ApplicationJob def need_to_process_invoice?(invoice:, payable:) logger.info "Checking if need to process e-invoice #{invoice}, payable: #{payable}" - unprocessable = invoice.do_not_send_e_invoice? && (invoice.monthly_invoice ? true : payable) return false if invoice.blank? - return false if unprocessable + return false if invoice.do_not_send_e_invoice? && payable true end - def process(invoice:, payable:) - invoice.to_e_invoice(payable: payable).deliver unless Rails.env.development? - invoice.update(e_invoice_sent_at: Time.zone.now) - log_success(invoice) - end - - def log_success(invoice) - id = invoice.try(:id) || invoice - message = "E-Invoice for an invoice with ID # #{id} was sent successfully" - logger.info message + def send_invoice_to_eis_billing(invoice:, payable:) + result = EisBilling::SendEInvoice.send_request(invoice: invoice, payable: payable) + logger.info result.body end def log_error(invoice:, error:) diff --git a/app/jobs/send_e_invoice_two_job.rb b/app/jobs/send_e_invoice_legacy_job.rb similarity index 64% rename from app/jobs/send_e_invoice_two_job.rb rename to app/jobs/send_e_invoice_legacy_job.rb index bb8f993ca..d9220388b 100644 --- a/app/jobs/send_e_invoice_two_job.rb +++ b/app/jobs/send_e_invoice_legacy_job.rb @@ -1,4 +1,4 @@ -class SendEInvoiceTwoJob < ApplicationJob +class SendEInvoiceLegacyJob < ApplicationJob discard_on HTTPClient::TimeoutError def perform(invoice_id, payable: true) @@ -6,8 +6,7 @@ class SendEInvoiceTwoJob < ApplicationJob invoice = Invoice.find_by(id: invoice_id) return unless need_to_process_invoice?(invoice: invoice, payable: payable) - send_invoice_to_eis_billing(invoice: invoice, payable: payable) - invoice.update(e_invoice_sent_at: Time.zone.now) + process(invoice: invoice, payable: payable) rescue StandardError => e log_error(invoice: invoice, error: e) raise e @@ -17,15 +16,23 @@ class SendEInvoiceTwoJob < ApplicationJob def need_to_process_invoice?(invoice:, payable:) logger.info "Checking if need to process e-invoice #{invoice}, payable: #{payable}" + unprocessable = invoice.do_not_send_e_invoice? && (invoice.monthly_invoice ? true : payable) return false if invoice.blank? - return false if invoice.do_not_send_e_invoice? && payable + return false if unprocessable true end - def send_invoice_to_eis_billing(invoice:, payable:) - result = EisBilling::SendEInvoice.send_request(invoice: invoice, payable: payable) - logger.info result.body + def process(invoice:, payable:) + invoice.to_e_invoice(payable: payable).deliver unless Rails.env.development? + invoice.update(e_invoice_sent_at: Time.zone.now) + log_success(invoice) + end + + def log_success(invoice) + id = invoice.try(:id) || invoice + message = "E-Invoice for an invoice with ID # #{id} was sent successfully" + logger.info message end def log_error(invoice:, error:) diff --git a/app/models/billing/reference_no.rb b/app/models/billing/reference_no.rb index 3ed84d7f1..050db73d4 100644 --- a/app/models/billing/reference_no.rb +++ b/app/models/billing/reference_no.rb @@ -4,13 +4,8 @@ module Billing MULTI_REGEXP = /(\d{2,20})/ def self.generate - if Feature.billing_system_integrated? - result = EisBilling::GetReferenceNumber.send_request - JSON.parse(result.body)['reference_number'] - else - base = Base.generate - "#{base}#{base.check_digit}" - end + result = EisBilling::GetReferenceNumber.send_request + JSON.parse(result.body)['reference_number'] end def self.valid?(ref) diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 327a107cd..80d6cf5d2 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -62,39 +62,13 @@ class Invoice < ApplicationRecord throw(:abort) end - def invoice_number_from_billing + def set_invoice_number result = EisBilling::GetInvoiceNumber.send_invoice validate_invoice_number(result) self.number = JSON.parse(result.body)['invoice_number'].to_i end - def generate_invoice_number_legacy - last_no = Invoice.all - .where(number: Setting.invoice_number_min.to_i...Setting.invoice_number_max.to_i) - .order(number: :desc) - .limit(1) - .pick(:number) - - if last_no && last_no >= Setting.invoice_number_min.to_i - self.number = last_no + 1 - else - self.number = Setting.invoice_number_min.to_i - end - - return if number <= Setting.invoice_number_max.to_i - - billing_out_of_range_issue - end - - def set_invoice_number - if Feature.billing_system_integrated? - invoice_number_from_billing - else - generate_invoice_number_legacy - end - end - def to_s I18n.t('invoice_no', no: number) end diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 1dbd2061d..07d7d4795 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -146,20 +146,13 @@ class Registrar < ApplicationRecord # rubocop:disable Metrics/ClassLength .deliver_later(wait: 1.minute) end - if Feature.billing_system_integrated? - add_invoice_instance = EisBilling::AddDeposits.new(invoice) - result = add_invoice_instance.send_invoice + add_invoice_instance = EisBilling::AddDeposits.new(invoice) + result = add_invoice_instance.send_invoice - link = JSON.parse(result.body)['everypay_link'] + link = JSON.parse(result.body)['everypay_link'] - invoice.update(payment_link: link) - end - - if Feature.billing_system_integrated? - SendEInvoiceTwoJob.set(wait: 1.minute).perform_now(invoice.id, payable: payable) - else - SendEInvoiceJob.set(wait: 1.minute).perform_now(invoice.id, payable: payable) - end + invoice.update(payment_link: link) + SendEInvoiceJob.set(wait: 1.minute).perform_now(invoice.id, payable: payable) invoice end diff --git a/db/structure.sql b/db/structure.sql index 6e4c145f1..03fca59a8 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -5405,8 +5405,10 @@ INSERT INTO "schema_migrations" (version) VALUES ('20220113201642'), ('20220113220809'), ('20220124105717'), +('20220216113112'), ('20220228093211'), ('20220316140727'), +('20220406085500'), ('20220412130856'), ('20220413073315'), ('20220413084536'), diff --git a/test/integration/admin_area/invoices_test.rb b/test/integration/admin_area/invoices_test.rb index 9c831250e..7cf93ca81 100644 --- a/test/integration/admin_area/invoices_test.rb +++ b/test/integration/admin_area/invoices_test.rb @@ -24,30 +24,28 @@ class AdminAreaInvoicesIntegrationTest < ApplicationIntegrationTest end def test_create_new_invoice - if Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number + invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). - to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). + to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - visit new_admin_invoice_path + visit new_admin_invoice_path - assert_text 'Create new invoice' - select 'Best Names', from: 'deposit_registrar_id', match: :first - fill_in 'Amount', with: '1000' - click_on 'Save' + assert_text 'Create new invoice' + select 'Best Names', from: 'deposit_registrar_id', match: :first + fill_in 'Amount', with: '1000' + click_on 'Save' - assert_equal page.status_code, 200 - end + assert_equal page.status_code, 200 end def test_visit_list_of_invoices_pages diff --git a/test/integration/eis_billing/directo_response_test.rb b/test/integration/eis_billing/directo_response_test.rb index 4b2c30ba2..5125434e8 100644 --- a/test/integration/eis_billing/directo_response_test.rb +++ b/test/integration/eis_billing/directo_response_test.rb @@ -10,34 +10,30 @@ class DirectoResponseTest < ApplicationIntegrationTest end def test_should_created_directo_instance - if Feature.billing_system_integrated? - directo_response_from_billing = { - response: @response_xml, - month: true - } + directo_response_from_billing = { + response: @response_xml, + month: true + } - assert_difference 'Directo.count', 1 do - put eis_billing_directo_response_path, params: JSON.parse(directo_response_from_billing.to_json), - headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } - end + assert_difference 'Directo.count', 1 do + put eis_billing_directo_response_path, params: JSON.parse(directo_response_from_billing.to_json), + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end end def test_should_update_related_invoice - if Feature.billing_system_integrated? - directo_response_from_billing = { - response: @response_xml - } + directo_response_from_billing = { + response: @response_xml + } - refute @invoice.in_directo + refute @invoice.in_directo - assert_difference 'Directo.count', 1 do - put eis_billing_directo_response_path, params: JSON.parse(directo_response_from_billing.to_json), - headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } - end - - @invoice.reload - assert @invoice.in_directo + assert_difference 'Directo.count', 1 do + put eis_billing_directo_response_path, params: JSON.parse(directo_response_from_billing.to_json), + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } end + + @invoice.reload + assert @invoice.in_directo end end diff --git a/test/integration/eis_billing/lhv_connect_transactions_test.rb b/test/integration/eis_billing/lhv_connect_transactions_test.rb index 14f7bccd7..6e89808c8 100644 --- a/test/integration/eis_billing/lhv_connect_transactions_test.rb +++ b/test/integration/eis_billing/lhv_connect_transactions_test.rb @@ -8,8 +8,6 @@ class LhvConnectTransactionsIntegrationTest < ApplicationIntegrationTest end def test_should_saved_transaction_data - return unless Feature.billing_system_integrated? - test_transaction_1 = OpenStruct.new(amount: 0.1, currency: 'EUR', date: Time.zone.today, diff --git a/test/integration/repp/v1/invoices/add_credit_test.rb b/test/integration/repp/v1/invoices/add_credit_test.rb index 71f2c77d3..0d48df029 100644 --- a/test/integration/repp/v1/invoices/add_credit_test.rb +++ b/test/integration/repp/v1/invoices/add_credit_test.rb @@ -28,13 +28,11 @@ class ReppV1InvoicesAddCreditTest < ActionDispatch::IntegrationTest Setting.registry_vat_prc = 0.1 ENV['billing_system_integrated'] = 'true' - if Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, 'https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator') - .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:post, 'https://eis_billing_system:3000/api/v1/e_invoice/e_invoice') - .to_return(status: 200, body: '', headers: {}) - end + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, 'https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator') + .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + stub_request(:post, 'https://eis_billing_system:3000/api/v1/e_invoice/e_invoice') + .to_return(status: 200, body: '', headers: {}) post '/repp/v1/invoices/add_credit', headers: @auth_headers, params: request_body diff --git a/test/models/bank_transaction_test.rb b/test/models/bank_transaction_test.rb index 8cb62ab48..abd92d191 100644 --- a/test/models/bank_transaction_test.rb +++ b/test/models/bank_transaction_test.rb @@ -16,8 +16,6 @@ class BankTransactionTest < ActiveSupport::TestCase end def test_binds_if_this_sum_invoice_already_present - return unless Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number stub_request(:post, 'https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator') .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) @@ -45,8 +43,6 @@ class BankTransactionTest < ActiveSupport::TestCase end def test_binds_if_this_sum_cancelled_invoice_already_present - return unless Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number stub_request(:post, 'https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator') .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) @@ -70,8 +66,6 @@ class BankTransactionTest < ActiveSupport::TestCase end def test_marks_the_first_one_as_paid_if_same_sum - return unless Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number stub_request(:post, 'https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator') .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) diff --git a/test/models/billing/reference_no_test.rb b/test/models/billing/reference_no_test.rb index 15ac65dc4..5f22ff780 100644 --- a/test/models/billing/reference_no_test.rb +++ b/test/models/billing/reference_no_test.rb @@ -7,12 +7,10 @@ class ReferenceNoTest < ActiveSupport::TestCase end def test_generated_reference_number_conforms_to_format - if Feature.billing_system_integrated? - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/reference_number_generator") - .to_return(status: 200, body: "{\"reference_number\":\"12332\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/reference_number_generator") + .to_return(status: 200, body: "{\"reference_number\":\"12332\"}", headers: {}) - reference_no = Billing::ReferenceNo.generate - assert_match Billing::ReferenceNo::REGEXP, reference_no - end + reference_no = Billing::ReferenceNo.generate + assert_match Billing::ReferenceNo::REGEXP, reference_no end end diff --git a/test/models/feature_test.rb b/test/models/feature_test.rb index f71979f11..9352deb70 100644 --- a/test/models/feature_test.rb +++ b/test/models/feature_test.rb @@ -1,53 +1,4 @@ require 'test_helper' class FeatureTest < ActiveSupport::TestCase - # setup do - # @domain = domains(:shop) - # @domain.apply_registry_lock(extensions_prohibited: false) - # end - # - # def test_if_obj_and_extensions_prohibited_enabled - # ENV['obj_and_extensions_prohibited'] = 'true' - # - # assert Feature.obj_and_extensions_statuses_enabled? - # - # statuses = DomainStatus.admin_statuses - # assert statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED - # end - # - # def test_if_obj_and_extensions_prohibited_is_nil - # ENV['obj_and_extensions_prohibited'] = nil - # - # assert_not Feature.obj_and_extensions_statuses_enabled? - # - # statuses = DomainStatus.admin_statuses - # assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED - # end - # - # def test_if_obj_and_extensions_prohibited_is_false - # ENV['obj_and_extensions_prohibited'] = 'false' - # - # assert_not Feature.obj_and_extensions_statuses_enabled? - # - # statuses = DomainStatus.admin_statuses - # assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED - # end - # - # def test_if_enable_lock_domain_with_new_statuses_is_nil - # ENV['enable_lock_domain_with_new_statuses'] = nil - # - # assert_not Feature.enable_lock_domain_with_new_statuses? - # - # assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"] - # assert @domain.locked_by_registrant? - # end - # - # def test_if_enable_lock_domain_with_new_statuses_is_false - # ENV['enable_lock_domain_with_new_statuses'] = 'false' - # - # assert_not Feature.enable_lock_domain_with_new_statuses? - # - # assert_equal @domain.statuses, ["serverObjUpdateProhibited", "serverDeleteProhibited", "serverTransferProhibited"] - # assert @domain.locked_by_registrant? - # end end diff --git a/test/models/invoice_test.rb b/test/models/invoice_test.rb index d0cadb4ee..344af9dcc 100644 --- a/test/models/invoice_test.rb +++ b/test/models/invoice_test.rb @@ -118,69 +118,65 @@ class InvoiceTest < ActiveSupport::TestCase end def test_creates_invoice_with_bank_transaction_total - if Feature.billing_system_integrated? - registrar = registrars(:bestnames) - transaction = bank_transactions(:one).dup - transaction.reference_no = registrar.reference_no - transaction.sum = 250 + registrar = registrars(:bestnames) + transaction = bank_transactions(:one).dup + transaction.reference_no = registrar.reference_no + transaction.sum = 250 - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator") - .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator") + .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator") - .to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator") + .to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - invoice = Invoice.create_from_transaction!(transaction) - assert_equal 250, invoice.total + invoice = Invoice.create_from_transaction!(transaction) + assert_equal 250, invoice.total - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 4}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 4}\"}", headers: {}) - transaction.sum = 146.88 - invoice = Invoice.create_from_transaction!(transaction) - assert_equal 146.88, invoice.total + transaction.sum = 146.88 + invoice = Invoice.create_from_transaction!(transaction) + assert_equal 146.88, invoice.total - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 5}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 5}\"}", headers: {}) - transaction.sum = 0.99 - invoice = Invoice.create_from_transaction!(transaction) - assert_equal 0.99, invoice.total - end + transaction.sum = 0.99 + invoice = Invoice.create_from_transaction!(transaction) + assert_equal 0.99, invoice.total end def test_emails_invoice_after_creating_topup_invoice - if Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). - to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). + to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - registrar = registrars(:bestnames) - transaction = bank_transactions(:one).dup - transaction.reference_no = registrar.reference_no - transaction.sum = 250 + registrar = registrars(:bestnames) + transaction = bank_transactions(:one).dup + transaction.reference_no = registrar.reference_no + transaction.sum = 250 - response = OpenStruct.new(body: "{\"invoice_number\":\"#{invoice_n + 3}\"}") - Spy.on(EisBilling::GetInvoiceNumber, :send_invoice).and_return(response) + response = OpenStruct.new(body: "{\"invoice_number\":\"#{invoice_n + 3}\"}") + Spy.on(EisBilling::GetInvoiceNumber, :send_invoice).and_return(response) - assert_emails 1 do - Invoice.create_from_transaction!(transaction) - end + assert_emails 1 do + Invoice.create_from_transaction!(transaction) end end end diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 71ebe0fc0..da9eeed9a 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -145,55 +145,47 @@ class RegistrarTest < ActiveJob::TestCase end def test_issues_new_invoice - if Feature.billing_system_integrated? - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). - to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). + to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - travel_to Time.zone.parse('2010-07-05') - Setting.days_to_keep_invoices_active = 10 + travel_to Time.zone.parse('2010-07-05') + Setting.days_to_keep_invoices_active = 10 - invoice = @registrar.issue_prepayment_invoice(100) + invoice = @registrar.issue_prepayment_invoice(100) - assert_equal Date.parse('2010-07-05'), invoice.issue_date - assert_equal Date.parse('2010-07-15'), invoice.due_date - end + assert_equal Date.parse('2010-07-05'), invoice.issue_date + assert_equal Date.parse('2010-07-15'), invoice.due_date end def test_issues_e_invoice_along_with_invoice - if Feature.billing_system_integrated? - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). - to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). + to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) - end + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) EInvoice::Providers::TestProvider.deliveries.clear perform_enqueued_jobs do @registrar.issue_prepayment_invoice(100) end - - unless Feature.billing_system_integrated? - assert_equal 1, EInvoice::Providers::TestProvider.deliveries.count - end end def test_invalid_without_address_street diff --git a/test/system/admin_area/bank_statement_test.rb b/test/system/admin_area/bank_statement_test.rb index f86e6ef53..2bc235200 100644 --- a/test/system/admin_area/bank_statement_test.rb +++ b/test/system/admin_area/bank_statement_test.rb @@ -55,39 +55,37 @@ class AdminAreaBankStatementTest < ApplicationSystemTestCase end def test_can_bind_statement_transactions - if Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator") - .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - registrar = registrars(:bestnames) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator") + .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + registrar = registrars(:bestnames) - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator") - .to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator") + .to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response") - .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response") + .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice") - .to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice") + .to_return(status: 200, body: "", headers: {}) - registrar.issue_prepayment_invoice(500) - invoice = registrar.invoices.last + registrar.issue_prepayment_invoice(500) + invoice = registrar.invoices.last - create_bank_statement - click_link_or_button 'Add' - assert_text 'Create bank transaction' + create_bank_statement + click_link_or_button 'Add' + assert_text 'Create bank transaction' - fill_in 'Description', with: "Invoice with id #{invoice.number}" - fill_in 'Reference number', with: invoice.reference_no - fill_in 'Sum', with: invoice.total - fill_in 'Paid at', with: Time.zone.today.to_s - click_link_or_button 'Save' + fill_in 'Description', with: "Invoice with id #{invoice.number}" + fill_in 'Reference number', with: invoice.reference_no + fill_in 'Sum', with: invoice.total + fill_in 'Paid at', with: Time.zone.today.to_s + click_link_or_button 'Save' - click_link_or_button 'Back to bank statement' - click_link_or_button 'Bind invoices' + click_link_or_button 'Back to bank statement' + click_link_or_button 'Bind invoices' - assert_text 'Invoices were fully binded' - end + assert_text 'Invoices were fully binded' end def create_bank_statement diff --git a/test/system/admin_area/registrars_test.rb b/test/system/admin_area/registrars_test.rb index 757875d1f..f3ee31020 100644 --- a/test/system/admin_area/registrars_test.rb +++ b/test/system/admin_area/registrars_test.rb @@ -14,30 +14,28 @@ class AdminRegistrarsSystemTest < ApplicationSystemTestCase end def test_creates_new_registrar - if Feature.billing_system_integrated? - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/reference_number_generator"). - to_return(status: 200, body: "{\"reference_number\":\"12332\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/reference_number_generator"). + to_return(status: 200, body: "{\"reference_number\":\"12332\"}", headers: {}) - assert_nil Registrar.find_by(name: 'Acme Ltd') + assert_nil Registrar.find_by(name: 'Acme Ltd') - visit admin_registrars_path - click_on 'New registrar' + visit admin_registrars_path + click_on 'New registrar' - fill_in 'Name', with: 'Acme Ltd' - fill_in 'Reg no', with: '1234' - fill_in 'Contact e-mail', with: 'any@acme.test' - fill_in 'Street', with: 'any' - fill_in 'City', with: 'any' - fill_in 'State / Province', with: 'any' - fill_in 'Zip', with: 'any' - select 'United States', from: 'Country' - fill_in 'Accounting customer code', with: 'test' - fill_in 'Code', with: 'test' - click_on 'Create registrar' + fill_in 'Name', with: 'Acme Ltd' + fill_in 'Reg no', with: '1234' + fill_in 'Contact e-mail', with: 'any@acme.test' + fill_in 'Street', with: 'any' + fill_in 'City', with: 'any' + fill_in 'State / Province', with: 'any' + fill_in 'Zip', with: 'any' + select 'United States', from: 'Country' + fill_in 'Accounting customer code', with: 'test' + fill_in 'Code', with: 'test' + click_on 'Create registrar' - assert_text 'Registrar has been successfully created' - assert_text 'Acme Ltd' - end + assert_text 'Registrar has been successfully created' + assert_text 'Acme Ltd' end def test_updates_registrar diff --git a/test/system/registrar_area/billing/balance_top_up_test.rb b/test/system/registrar_area/billing/balance_top_up_test.rb index 5cb32361f..3dfeb5a26 100644 --- a/test/system/registrar_area/billing/balance_top_up_test.rb +++ b/test/system/registrar_area/billing/balance_top_up_test.rb @@ -15,32 +15,30 @@ class BalanceTopUpTest < ApplicationSystemTestCase end def test_creates_new_invoice - if Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response") - .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response") + .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice") - .to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice") + .to_return(status: 200, body: "", headers: {}) - Setting.registry_vat_prc = 0.1 + Setting.registry_vat_prc = 0.1 - visit registrar_invoices_url - click_link_or_button 'Add deposit' - fill_in 'Amount', with: '25.5' + visit registrar_invoices_url + click_link_or_button 'Add deposit' + fill_in 'Amount', with: '25.5' - assert_difference 'Invoice.count' do - click_link_or_button 'Add' - end - - invoice = Invoice.last - - assert_equal BigDecimal(10), invoice.vat_rate - assert_equal BigDecimal('28.05'), invoice.total - assert_text 'Please pay the following invoice' + assert_difference 'Invoice.count' do + click_link_or_button 'Add' end + + invoice = Invoice.last + + assert_equal BigDecimal(10), invoice.vat_rate + assert_equal BigDecimal('28.05'), invoice.total + assert_text 'Please pay the following invoice' end end diff --git a/test/system/registrar_area/invoices/new_test.rb b/test/system/registrar_area/invoices/new_test.rb index a1b66ac47..16e30aeb7 100644 --- a/test/system/registrar_area/invoices/new_test.rb +++ b/test/system/registrar_area/invoices/new_test.rb @@ -17,59 +17,55 @@ class NewInvoiceTest < ApplicationSystemTestCase end def test_create_new_invoice_with_positive_amount - if Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - visit registrar_invoices_path - click_link_or_button 'Add deposit' - fill_in 'Amount', with: '200.00' - fill_in 'Description', with: 'My first invoice' + visit registrar_invoices_path + click_link_or_button 'Add deposit' + fill_in 'Amount', with: '200.00' + fill_in 'Description', with: 'My first invoice' - assert_difference 'Invoice.count', 1 do - click_link_or_button 'Add' - end - - assert_text 'Please pay the following invoice' - assert_text "Invoice no. #{invoice_n + 3}" - assert_text 'Subtotal 200,00 €' - assert_text 'Pay invoice' + assert_difference 'Invoice.count', 1 do + click_link_or_button 'Add' end + + assert_text 'Please pay the following invoice' + assert_text "Invoice no. #{invoice_n + 3}" + assert_text 'Subtotal 200,00 €' + assert_text 'Pay invoice' end def test_create_new_invoice_with_comma_in_number - if Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - visit registrar_invoices_path - click_link_or_button 'Add deposit' - fill_in 'Amount', with: '200,00' - fill_in 'Description', with: 'My first invoice' + visit registrar_invoices_path + click_link_or_button 'Add deposit' + fill_in 'Amount', with: '200,00' + fill_in 'Description', with: 'My first invoice' - assert_difference 'Invoice.count', 1 do - click_link_or_button 'Add' - end - - assert_text 'Please pay the following invoice' - assert_text "Invoice no. #{invoice_n + 3}" - assert_text 'Subtotal 200,00 €' - assert_text 'Pay invoice' + assert_difference 'Invoice.count', 1 do + click_link_or_button 'Add' end + + assert_text 'Please pay the following invoice' + assert_text "Invoice no. #{invoice_n + 3}" + assert_text 'Subtotal 200,00 €' + assert_text 'Pay invoice' end def test_create_new_invoice_fails_when_amount_is_0 diff --git a/test/tasks/invoices/process_payments_test.rb b/test/tasks/invoices/process_payments_test.rb index 60ef3d8d8..39d5ae913 100644 --- a/test/tasks/invoices/process_payments_test.rb +++ b/test/tasks/invoices/process_payments_test.rb @@ -78,11 +78,9 @@ class ProcessPaymentsTaskTest < ActiveJob::TestCase end def test_if_invoice_is_overdue_than_48_hours - return unless Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number - Spy.on_instance_method(SendEInvoiceTwoJob, :perform_now).and_return(true) + Spy.on_instance_method(SendEInvoiceJob, :perform_now).and_return(true) stub_request(:post, 'https://eis_billing_system:3000/api/v1/e_invoice/e_invoice') .to_return(status: 200, body: '', headers: {}) @@ -164,8 +162,6 @@ class ProcessPaymentsTaskTest < ActiveJob::TestCase end def test_credits_registrar_athout_invoice_beforehand - return unless Feature.billing_system_integrated? - invoice_n = Invoice.order(number: :desc).last.number stub_request(:post, 'https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator') .to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}") @@ -202,8 +198,6 @@ class ProcessPaymentsTaskTest < ActiveJob::TestCase end def test_topup_creates_invoice_and_send_it_as_paid - return unless Feature.billing_system_integrated? - stub_request(:post, 'https://eis_billing_system:3000/api/v1/e_invoice/e_invoice') .to_return(status: 200, body: '', headers: {}) diff --git a/test/tasks/registrars/reload_balance_test.rb b/test/tasks/registrars/reload_balance_test.rb index 0888fe3f4..934c6f6d0 100644 --- a/test/tasks/registrars/reload_balance_test.rb +++ b/test/tasks/registrars/reload_balance_test.rb @@ -21,30 +21,28 @@ class ReloadBalanceTaskTest < ActiveSupport::TestCase end def test_issues_invoice_when_auto_reload_is_enabled_and_threshold_reached - if Feature.billing_system_integrated? - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). - to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). + to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - reload_amount = 100 - registrar = registrar_with_auto_reload_enabled_and_threshold_reached(reload_amount) + reload_amount = 100 + registrar = registrar_with_auto_reload_enabled_and_threshold_reached(reload_amount) - assert_difference -> { registrar.invoices.count } do - capture_io { run_task } - end - - invoice = registrar.invoices.last - assert_equal Time.zone.today, invoice.e_invoice_sent_at.to_date + assert_difference -> { registrar.invoices.count } do + capture_io { run_task } end + + invoice = registrar.invoices.last + assert_equal Time.zone.today, invoice.e_invoice_sent_at.to_date end def test_skips_issuing_invoice_when_threshold_is_not_reached @@ -66,51 +64,47 @@ class ReloadBalanceTaskTest < ActiveSupport::TestCase end def test_marks_registrar_as_pending_balance_reload - if Feature.billing_system_integrated? - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). - to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). + to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - registrar = registrar_with_auto_reload_enabled_and_threshold_reached + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - capture_io { run_task } - registrar.reload + registrar = registrar_with_auto_reload_enabled_and_threshold_reached - assert registrar.settings['balance_auto_reload']['pending'] - end + capture_io { run_task } + registrar.reload + + assert registrar.settings['balance_auto_reload']['pending'] end def test_output - if Feature.billing_system_integrated? - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). - to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_generator"). + to_return(status: 200, body: "{\"everypay_link\":\"http://link.test\"}", headers: {}) - invoice_n = Invoice.order(number: :desc).last.number - stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) + invoice_n = Invoice.order(number: :desc).last.number + stub_request(:post, "https://eis_billing_system:3000/api/v1/invoice_generator/invoice_number_generator"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}", headers: {}) - stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). - to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) + stub_request(:put, "https://registry:3000/eis_billing/e_invoice_response"). + to_return(status: 200, body: "{\"invoice_number\":\"#{invoice_n + 3}\"}, {\"date\":\"#{Time.zone.now-10.minutes}\"}", headers: {}) - stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). - to_return(status: 200, body: "", headers: {}) + stub_request(:post, "https://eis_billing_system:3000/api/v1/e_invoice/e_invoice"). + to_return(status: 200, body: "", headers: {}) - reload_amount = 100 - registrar = registrar_with_auto_reload_enabled_and_threshold_reached(reload_amount) - assert_equal 'Best Names', registrar.name + reload_amount = 100 + registrar = registrar_with_auto_reload_enabled_and_threshold_reached(reload_amount) + assert_equal 'Best Names', registrar.name - assert_output %(Registrar "Best Names" got #{number_to_currency(reload_amount, unit: 'EUR')}\nInvoiced total: 1\n) do - run_task - end + assert_output %(Registrar "Best Names" got #{number_to_currency(reload_amount, unit: 'EUR')}\nInvoiced total: 1\n) do + run_task end end