#!/usr/bin/perl
use Test::WWW::Mechanize::CGIApp;
use Data::Dumper;
use strict;
use warnings;
use Test::More tests => 21; # use Test::More 'no_plan';
BEGIN {
require 't/test-lib.pl';
}
my $mech = get_mech();
do_login();
my $dbh;
eval {
$dbh = get_dbh() or die 'no database handle recieved from get_dbh';
};
warn $@ if $@;
# insert new clinician:
$mech->get_ok('/config/clinicians'); # print_and_exit();
$mech->content_contains(
'Admin » Clinicians',
'OK: config clinicians page loaded',
);
my %clinician = (
national_code => undef, # triggers 'missing' error
surname => 'brown',
initials_1 => 'a',
initials_2 => 'b',
referral_source_id => 1,
hospital_department_code => 823,
_display_name => 'Bradford',
);
$mech->submit_form(
fields => \%clinician,
); # print_and_exit();
# missing field error:
has_dfv_errors();
has_missing();
$clinician{national_code} = 'c 0123456';
$mech->submit_form(
fields => \%clinician,
);
# invalid field error:
has_dfv_errors(); # print_and_exit();
has_invalid();
$clinician{national_code} = '0123456';
$clinician{prefix} = 'C';
# submit valid data:
$mech->submit_form(
fields => \%clinician,
); # print_and_exit();
# entry successful:
$mech->content_contains(
get_messages('admin')->{clinician}->{create_success},
'OK: form entry success',
); # print_and_exit();
# insert another clinician with same code but different surname:
$mech->get_ok('/config/clinicians'); # print_and_exit();
$clinician{surname} = 'green';
$mech->submit_form(
fields => \%clinician,
); # print_and_exit();
# surname mismatch error:
$mech->content_contains(
( sprintf get_messages('admin')->{clinician}->{name_mismatch},
uc 'c'.$clinician{national_code}, 'Brown AB' ),
'OK: surname mis-match detected',
); # print_and_exit();
# correct surname & re-submit:
$clinician{surname} = 'brown';
$mech->submit_form(
fields => \%clinician,
); # print_and_exit();
# duplicate clinician/location error:
$mech->content_contains(
get_messages('admin')->{clinician}->{not_unique},
'OK: duplicate clinician/location detected',
); # print_and_exit();
# load GP's page:
$mech->get_ok('/config/general-practitioners'); # print_and_exit();
{
# retrieve all:
retrieve_all_records('find_referrer','name'); # print_and_exit();
my $i=0;
foreach ( 'G1234567', 'OLD SURGERY, NT1 1TN', 'Black DE', 'yes' ) {
$i++;
$mech->content_contains(
qq!value="$_"!,
"OK: GP field [$i] detected",
);
}
}
# follow 'edit' link:
$mech->follow_link_ok(
# {n => 8}, "Logout $_ via eighth link on page",
{ url_regex => qr/edit/i, },
'OK: select "edit" link',
); # print_and_exit();
$mech->submit_form(
fields => {
active => 'no',
}
); # print_and_exit();
# retrieve all:
retrieve_all_records('find_referrer','name'); # print_and_exit();
$mech->content_contains(
qq!value="no"!,
"OK: changed field detected",
);
# do_logout(); logout link not available for admin function