Skip to content

Commit

Permalink
fixup! [Bexley] Internal Direct Debit collection method for GGW
Browse files Browse the repository at this point in the history
Ensures reports are confirmed after DD is set up so they get sent to Agile
  • Loading branch information
davea committed Feb 20, 2025
1 parent 90f752b commit 2b3926e
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
1 change: 1 addition & 0 deletions perllib/FixMyStreet/Cobrand/Bexley/Garden.pm
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
31 changes: 31 additions & 0 deletions t/app/controller/waste_bexley_garden.t
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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:.*?75/;
$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 {
Expand Down Expand Up @@ -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:.*?75/;
$mech->clear_emails_ok;
};

subtest 'cancel garden subscription' => sub {
Expand Down

0 comments on commit 2b3926e

Please sign in to comment.