diff --git a/perllib/FixMyStreet/Cobrand/Bexley/Garden.pm b/perllib/FixMyStreet/Cobrand/Bexley/Garden.pm index afaed7ce3d..3f29e13c77 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 1beed737ea..906c3286a2 100644 --- a/t/app/controller/waste_bexley_garden.t +++ b/t/app/controller/waste_bexley_garden.t @@ -430,6 +430,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 { @@ -516,9 +519,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 { @@ -592,6 +611,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 {