aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/model/moderation.t
diff options
context:
space:
mode:
Diffstat (limited to 't/app/model/moderation.t')
-rw-r--r--t/app/model/moderation.t66
1 files changed, 66 insertions, 0 deletions
diff --git a/t/app/model/moderation.t b/t/app/model/moderation.t
new file mode 100644
index 000000000..cdc9a91b0
--- /dev/null
+++ b/t/app/model/moderation.t
@@ -0,0 +1,66 @@
+use strict;
+use warnings;
+use Test::More;
+use Test::Exception;
+use utf8;
+
+use FixMyStreet::App;
+use Data::Dumper;
+use DateTime;
+
+my $dt = DateTime->now;
+my $user = FixMyStreet::App->model('DB::User')->find_or_create({
+ name => 'Bob', email => 'bob@example.com',
+});
+
+sub get_report_and_original_data {
+ my $report = FixMyStreet::App->model('DB::Problem')->create(
+ {
+ postcode => 'BR1 3SB',
+ bodies_str => '',
+ areas => ",,",
+ category => 'Other',
+ title => 'test',
+ detail => 'test',
+ used_map => 't',
+ name => 'Anon',
+ anonymous => 't',
+ state => 'confirmed',
+ confirmed => $dt->ymd . ' ' . $dt->hms,
+ lang => 'en-gb',
+ service => '',
+ cobrand => 'default',
+ cobrand_data => '',
+ send_questionnaire => 't',
+ latitude => '51.4129',
+ longitude => '0.007831',
+ user => $user,
+ });
+ my $original = $report->create_related( moderation_original_data => {
+ anonymous => 't',
+ title => 'test',
+ detail => 'test',
+ photo => 'f',
+ } );
+
+ return ($report, $original);
+}
+
+subtest 'Explicit Deletion (sanity test)' => sub {
+ my ($report, $orig) = get_report_and_original_data;
+
+ lives_ok {
+ $orig->delete;
+ $report->delete;
+ };
+};
+
+subtest 'Implicit Chained Deletion' => sub {
+ my ($report, $orig) = get_report_and_original_data;
+
+ lives_ok {
+ $report->delete;
+ };
+};
+
+done_testing();