From 8d2cd90dc4496be9686d1ac5bd2e39c9745d8623 Mon Sep 17 00:00:00 2001 From: Dave Arter Date: Wed, 19 Feb 2025 20:07:19 +0000 Subject: [PATCH] fixup! [Bexley] Internal Direct Debit collection method for GGW Ensures reports are confirmed after DD is set up so they get sent to Agile --- perllib/FixMyStreet/Cobrand/Bexley/Garden.pm | 1 + t/app/controller/waste_bexley_garden.t | 31 ++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/perllib/FixMyStreet/Cobrand/Bexley/Garden.pm b/perllib/FixMyStreet/Cobrand/Bexley/Garden.pm index 811d5efda2..87dcd377fc 100644 --- a/perllib/FixMyStreet/Cobrand/Bexley/Garden.pm +++ b/perllib/FixMyStreet/Cobrand/Bexley/Garden.pm @@ -194,6 +194,7 @@ sub waste_setup_direct_debit { $report->set_extra_metadata('direct_debit_customer_id', $customer->{Id}); $report->set_extra_metadata('direct_debit_contract_id', $contract->{Id}); $report->set_extra_metadata('direct_debit_reference', $contract->{DirectDebitRef}); + $report->confirm; $report->update; return 1; diff --git a/t/app/controller/waste_bexley_garden.t b/t/app/controller/waste_bexley_garden.t index f4b6b1f3da..66368567c4 100644 --- a/t/app/controller/waste_bexley_garden.t +++ b/t/app/controller/waste_bexley_garden.t @@ -471,6 +471,9 @@ FixMyStreet::override_config { }; subtest 'Test direct debit submission flow new customer' => sub { + $mech->clear_emails_ok; + FixMyStreet::DB->resultset("Problem")->delete_all; + my $access_mock = Test::MockModule->new('Integrations::AccessPaySuite'); my ($customer_params, $contract_params); $access_mock->mock('create_customer', sub { @@ -557,9 +560,25 @@ FixMyStreet::override_config { is $report->get_extra_metadata('direct_debit_customer_id'), 'CUSTOMER123', 'Correct customer ID'; is $report->get_extra_metadata('direct_debit_contract_id'), 'CONTRACT123', 'Correct contract ID'; is $report->get_extra_metadata('direct_debit_reference'), 'APIRTM-DEFGHIJ1KL', 'Correct payer reference'; + is $report->state, 'confirmed', 'Report is confirmed'; + + FixMyStreet::Script::Reports::send(); + my @emails = $mech->get_email; + my $body = $mech->get_text_body_from_email($emails[1]); + TODO: { + local $TODO = 'Quantity not yet read in _garden_data.html'; + like $body, qr/Number of bin subscriptions: 2/; + } + like $body, qr/Bins to be delivered: 1/; + like $body, qr/Total:.*?70/; + $mech->clear_emails_ok; + }; subtest 'Test direct debit submission flow existing customer' => sub { + $mech->clear_emails_ok; + FixMyStreet::DB->resultset("Problem")->delete_all; + my $access_mock = Test::MockModule->new('Integrations::AccessPaySuite'); my ($customer_params, $contract_params); $access_mock->mock('create_customer', sub { @@ -633,6 +652,18 @@ FixMyStreet::override_config { is $report->get_extra_metadata('direct_debit_customer_id'), 'CUSTOMER456', 'Correct customer ID'; is $report->get_extra_metadata('direct_debit_contract_id'), 'CONTRACT123', 'Correct contract ID'; is $report->get_extra_metadata('direct_debit_reference'), 'APIRTM-DEFGHIJ1KL', 'Correct payer reference'; + is $report->state, 'confirmed', 'Report is confirmed'; + + FixMyStreet::Script::Reports::send(); + my @emails = $mech->get_email; + my $body = $mech->get_text_body_from_email($emails[1]); + TODO: { + local $TODO = 'Quantity not yet read in _garden_data.html'; + like $body, qr/Number of bin subscriptions: 2/; + } + like $body, qr/Bins to be delivered: 1/; + like $body, qr/Total:.*?70/; + $mech->clear_emails_ok; }; subtest 'cancel garden subscription' => sub {