aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/TestMech.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/TestMech.pm')
-rw-r--r--perllib/FixMyStreet/TestMech.pm26
1 files changed, 24 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm
index 3c2eb533d..26738556d 100644
--- a/perllib/FixMyStreet/TestMech.pm
+++ b/perllib/FixMyStreet/TestMech.pm
@@ -101,9 +101,31 @@ sub log_out_ok {
$mech->not_logged_in_ok;
}
+=head2 delete_user
+
+ $mech->delete_user( $user );
+ $mech->delete_user( $email );
+
+Delete the current user, including linked objects like problems etc. Can be
+either a user object or an email address.
+
+=cut
+
sub delete_user {
- my $mech = shift;
- my $user = shift;
+ my $mech = shift;
+ my $email_or_user = shift;
+
+ my $user =
+ ref $email_or_user
+ ? $email_or_user
+ : FixMyStreet::App->model('DB::User')
+ ->find( { email => $email_or_user } );
+
+ # If no user found we can't delete them
+ if ( !$user ) {
+ ok( 1, "No user found to delete" );
+ return 1;
+ }
$mech->log_out_ok;
ok( $_->delete, "delete problem " . $_->title ) #