From 9101207449e1770024a635f34a48d8246425d94e Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Mon, 22 Apr 2019 08:45:26 +0200
Subject: [PATCH] Add test for account (un)deletion

---
 t/02-registration.t | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/t/02-registration.t b/t/02-registration.t
index efa0b8ab..85355dfe 100644
--- a/t/02-registration.t
+++ b/t/02-registration.t
@@ -12,8 +12,8 @@ require "$FindBin::Bin/../index.pl";
 
 my $t = Test::Mojo->new('Travelynx');
 
-if (not $t->app->config->{db}) {
-	plan(skip_all => 'No database configured');
+if ( not $t->app->config->{db} ) {
+	plan( skip_all => 'No database configured' );
 }
 
 $t->app->pg->db->query('drop schema if exists travelynx_test_02 cascade');
@@ -90,5 +90,31 @@ $t->post_ok(
 );
 $t->status_is(302)->header_is( location => '/' );
 
+# Request deletion
+
+$csrf_token = $t->ua->get('/account')->res->dom->at('input[name=csrf_token]')
+  ->attr('value');
+
+$t->post_ok(
+	'/delete' => form => {
+		action     => 'delete',
+		csrf_token => $csrf_token,
+		password   => 'foofoofoo',
+	}
+);
+$t->status_is(302)->header_is( location => '/account' );
+$t->get_ok('/account');
+$t->status_is(200)->content_like(qr{wird gelöscht});
+
+$t->post_ok(
+	'/delete' => form => {
+		action     => 'undelete',
+		csrf_token => $csrf_token,
+	}
+);
+$t->status_is(302)->header_is( location => '/account' );
+$t->get_ok('/account');
+$t->status_is(200)->content_unlike(qr{wird gelöscht});
+
 $t->app->pg->db->query('drop schema travelynx_test_02 cascade');
 done_testing();
-- 
GitLab