2017-08-18 16:46:49 +01:00
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' ,
2017-08-25 15:47:54 +01:00
sector = > 'A' ,
2017-08-18 16:46:49 +01:00
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' ,
2017-08-25 15:47:54 +01:00
sector = > 'A' ,
2017-08-18 16:46:49 +01:00
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' ,
2017-08-25 15:47:54 +01:00
sector = > 'A' ,
2017-08-18 16:46:49 +01:00
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/ ) ;
2017-08-21 15:18:34 +01:00
#Valid adding organisation
$ t - > post_ok ( '/admin/organisations/add/submit' , form = > {
name = > 'Wall Market' ,
street_name = > 'Slums, Sector 6' ,
town = > 'Midgar' ,
2017-08-25 15:47:54 +01:00
sector = > 'A' ,
2017-08-21 15:18:34 +01:00
postcode = > 'TN35 5AQ' ,
} ) - > status_is ( 200 ) - > content_like ( qr/Added Organisation/ ) ;
#Failed validation on adding organisation
$ t - > post_ok ( '/admin/organisations/add/submit' , form = > {
name = > 'Wall Market' ,
street_name = > 'Slums, Sector 6' ,
postcode = > 'TN35 5AQ' ,
} ) - > content_like ( qr/The validation has failed/ ) ;
2017-08-18 16:46:49 +01:00
done_testing ( ) ;