Fixed code and added test for reading and editing Organisations
This commit is contained in:
parent
db2dc9fc0f
commit
36a5fdf2e3
5 changed files with 87 additions and 6 deletions
|
@ -172,9 +172,9 @@ sub startup {
|
||||||
|
|
||||||
$admin_routes->get('/organisations')->to('admin-organisations#list');
|
$admin_routes->get('/organisations')->to('admin-organisations#list');
|
||||||
$admin_routes->get('/organisations/valid/:id')->to('admin-organisations#valid_read');
|
$admin_routes->get('/organisations/valid/:id')->to('admin-organisations#valid_read');
|
||||||
$admin_routes->get('/organisations/valid/:id/edit')->to('admin-organisations#valid_edit');
|
$admin_routes->post('/organisations/valid/:id/edit')->to('admin-organisations#valid_edit');
|
||||||
$admin_routes->get('/organisations/pending/:id')->to('admin-organisations#pending_read');
|
$admin_routes->get('/organisations/pending/:id')->to('admin-organisations#pending_read');
|
||||||
$admin_routes->get('/organisations/pending/:id/edit')->to('admin-organisations#pending_edit');
|
$admin_routes->post('/organisations/pending/:id/edit')->to('admin-organisations#pending_edit');
|
||||||
$admin_routes->get('/organisations/pending/:id/approve')->to('admin-organisations#pending_approve');
|
$admin_routes->get('/organisations/pending/:id/approve')->to('admin-organisations#pending_approve');
|
||||||
|
|
||||||
$admin_routes->get('/feedback')->to('admin-feedback#index');
|
$admin_routes->get('/feedback')->to('admin-feedback#index');
|
||||||
|
|
|
@ -117,7 +117,7 @@ sub pending_edit {
|
||||||
$c->flash( success => 'Updated Organisation' );
|
$c->flash( success => 'Updated Organisation' );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
$c->redirect_to( '/admin/organisations/valid/' . $pending_org->id );
|
$c->redirect_to( '/admin/organisations/pending/' . $pending_org->id );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub pending_approve {
|
sub pending_approve {
|
||||||
|
|
81
t/admin/update.t
Normal file
81
t/admin/update.t
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
use Mojo::Base -strict;
|
||||||
|
|
||||||
|
use Test::More;
|
||||||
|
use Mojo::JSON;
|
||||||
|
use Test::Pear::LocalLoop;
|
||||||
|
|
||||||
|
my $framework = Test::Pear::LocalLoop->new;
|
||||||
|
my $t = $framework->framework;
|
||||||
|
my $schema = $t->app->schema;
|
||||||
|
|
||||||
|
my $user = $schema->resultset('User')->create({
|
||||||
|
email => 'admin@example.com',
|
||||||
|
password => 'abc123',
|
||||||
|
administrator => {},
|
||||||
|
});
|
||||||
|
|
||||||
|
is $schema->resultset('Administrator')->count, 1, 'Admin Created';
|
||||||
|
|
||||||
|
$schema->resultset('Organisation')->create({
|
||||||
|
id => 1,
|
||||||
|
name => 'Shinra Electric Power Company',
|
||||||
|
street_name => 'Sector 0, Midgar, Eastern Continent',
|
||||||
|
town => 'Gaia',
|
||||||
|
postcode => 'WC1E 6AD',
|
||||||
|
});
|
||||||
|
|
||||||
|
$schema->resultset('PendingOrganisation')->create({
|
||||||
|
id => 2,
|
||||||
|
name => '7th Heaven',
|
||||||
|
street_name => 'Slums, Sector 7',
|
||||||
|
town => 'Midgar',
|
||||||
|
postcode => 'WC1E 6AD',
|
||||||
|
submitted_by_id => $user->id,
|
||||||
|
});
|
||||||
|
|
||||||
|
#login to admin
|
||||||
|
$t->ua->max_redirects(10);
|
||||||
|
$t->post_ok('/admin', form => {
|
||||||
|
email => 'admin@example.com',
|
||||||
|
password => 'abc123',
|
||||||
|
})->status_is(200);
|
||||||
|
|
||||||
|
#Read approved organisation
|
||||||
|
$t->get_ok('/admin/organisations/valid/1/')
|
||||||
|
->status_is(200);
|
||||||
|
|
||||||
|
#Read pending organisation
|
||||||
|
$t->get_ok('/admin/organisations/pending/2/')
|
||||||
|
->status_is(200);
|
||||||
|
|
||||||
|
#Valid approved organisation update
|
||||||
|
$t->post_ok('/admin/organisations/valid/1/edit', form => {
|
||||||
|
name => 'Shinra Electric Power Company',
|
||||||
|
street_name => 'Sector 0, Midgar, Eastern Continent',
|
||||||
|
town => 'Gaia',
|
||||||
|
postcode => 'WC1E 6AD',
|
||||||
|
})->status_is(200)->content_like(qr/Updated Organisation/);
|
||||||
|
|
||||||
|
#Failed validation on approved organisation
|
||||||
|
$t->post_ok('/admin/organisations/valid/1/edit', form => {
|
||||||
|
name => 'Shinra Electric Power Company',
|
||||||
|
street_name => 'Sector 0, Midgar, Eastern Continent',
|
||||||
|
postcode => 'WC1E 6AD',
|
||||||
|
})->content_like(qr/The validation has failed/);
|
||||||
|
|
||||||
|
#Valid pending organisation update
|
||||||
|
$t->post_ok('/admin/organisations/pending/2/edit', form => {
|
||||||
|
name => '7th Heaven',
|
||||||
|
street_name => 'Slums, Sector 7',
|
||||||
|
town => 'Midgar',
|
||||||
|
postcode => 'WC1E 6AD',
|
||||||
|
})->status_is(200)->content_like(qr/Updated Organisation/);
|
||||||
|
|
||||||
|
#Failed validation on pending organisation
|
||||||
|
$t->post_ok('/admin/organisations/pending/2/edit', form => {
|
||||||
|
name => '7th Heaven',
|
||||||
|
street_name => 'Slums, Sector 7',
|
||||||
|
postcode => 'WC1E 6AD',
|
||||||
|
})->content_like(qr/The validation has failed/);
|
||||||
|
|
||||||
|
done_testing();
|
|
@ -16,8 +16,8 @@
|
||||||
%= $pending_org->name
|
%= $pending_org->name
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="list-group list-group-flush">
|
<ul class="list-group list-group-flush">
|
||||||
<form action="<%= url_for . '/edit' %>">
|
<form action="<%= url_for . '/edit' %>" method="post">
|
||||||
<li class="list-group-item"><input id="name" type="text" class="form-control" placeholder="Organisation Name" name="name" value="<%= $valid_org->name %>"></li>
|
<li class="list-group-item"><input id="name" type="text" class="form-control" placeholder="Organisation Name" name="name" value="<%= $pending_org->name %>"></li>
|
||||||
<li class="list-group-item"><input id="street_name" type="text" class="form-control" placeholder="Street Name" name="street_name" value="<%= $pending_org->street_name %>"></li>
|
<li class="list-group-item"><input id="street_name" type="text" class="form-control" placeholder="Street Name" name="street_name" value="<%= $pending_org->street_name %>"></li>
|
||||||
<li class="list-group-item"><input id="town" type="text" class="form-control" placeholder="Town" name="town" value="<%= $pending_org->town %>"></li>
|
<li class="list-group-item"><input id="town" type="text" class="form-control" placeholder="Town" name="town" value="<%= $pending_org->town %>"></li>
|
||||||
<li class="list-group-item"><input id="postcode" type="text" class="form-control" placeholder="Postcode" name="postcode" value="<%= $pending_org->postcode %>"></li>
|
<li class="list-group-item"><input id="postcode" type="text" class="form-control" placeholder="Postcode" name="postcode" value="<%= $pending_org->postcode %>"></li>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
%= $valid_org->name
|
%= $valid_org->name
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="list-group list-group-flush">
|
<ul class="list-group list-group-flush">
|
||||||
<form action="<%= url_for . '/edit' %>">
|
<form action="<%= url_for . '/edit' %>" method="post">
|
||||||
<li class="list-group-item"><input id="name" type="text" class="form-control" placeholder="Organisation Name" name="name" value="<%= $valid_org->name %>"></li>
|
<li class="list-group-item"><input id="name" type="text" class="form-control" placeholder="Organisation Name" name="name" value="<%= $valid_org->name %>"></li>
|
||||||
<li class="list-group-item"><input id="street_name" type="text" class="form-control" placeholder="Street Name" name="street_name" value="<%= $valid_org->street_name %>"></li>
|
<li class="list-group-item"><input id="street_name" type="text" class="form-control" placeholder="Street Name" name="street_name" value="<%= $valid_org->street_name %>"></li>
|
||||||
<li class="list-group-item"><input id="town" type="text" class="form-control" placeholder="Town" name="town" value="<%= $valid_org->town %>"></li>
|
<li class="list-group-item"><input id="town" type="text" class="form-control" placeholder="Town" name="town" value="<%= $valid_org->town %>"></li>
|
||||||
|
|
Reference in a new issue