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.pm33
1 files changed, 25 insertions, 8 deletions
diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm
index 5b063ebe5..72a6810bc 100644
--- a/perllib/FixMyStreet/TestMech.pm
+++ b/perllib/FixMyStreet/TestMech.pm
@@ -534,6 +534,17 @@ sub get_ok_json {
return decode_json( $res->content );
}
+sub delete_body {
+ my $mech = shift;
+ my $body = shift;
+
+ $mech->delete_problems_for_body($body->id);
+ $body->contacts->delete;
+ $mech->delete_user($_) for $body->users;
+ $body->body_areas->delete;
+ $body->delete;
+}
+
sub delete_problems_for_body {
my $mech = shift;
my $body = shift;
@@ -542,6 +553,7 @@ sub delete_problems_for_body {
if ( $reports ) {
for my $r ( $reports->all ) {
$r->comments->delete;
+ $r->questionnaires->delete;
}
$reports->delete;
}
@@ -549,16 +561,21 @@ sub delete_problems_for_body {
sub create_body_ok {
my $self = shift;
- my ( $id, $name ) = @_;
-
- my $params = { id => $id, name => $name };
- my $body = FixMyStreet::App->model('DB::Body')->find_or_create($params);
- $body->update($params); # Make sure
- ok $body, "found/created user for $id $name";
+ my ( $area_id, $name, %extra ) = @_;
+
+ my $body = FixMyStreet::App->model('DB::Body');
+ my $params = { name => $name };
+ if ($extra{id}) {
+ $body = $body->update_or_create({ %$params, id => $extra{id} }, { key => 'primary' });
+ } else {
+ $body = $body->find_or_create($params);
+ }
+ ok $body, "found/created body $name";
+ $body->body_areas->delete;
FixMyStreet::App->model('DB::BodyArea')->find_or_create({
- area_id => $id,
- body_id => $id,
+ area_id => $area_id,
+ body_id => $body->id,
});
return $body;