#!/usr/bin/perl use Test::WWW::Mechanize::CGIApp; use Test::Builder::Tester; use Data::Dumper; use strict; use warnings; use constant TESTS => 18; use Test::More tests => TESTS; # use Test::More 'no_plan'; =begin: tests: =cut BEGIN { require 't/test-lib.pl'; } my $mech = get_mech(); do_login(); my $dbh; eval { $dbh = get_dbh() or die 'no database handle received from get_dbh'; }; my $dbix = get_dbix(); { # manually request test with associated linked lab-test: # 3 new lab tests: $dbix->insert('lab_tests', { field_label => 'Test-1', lab_section_id => 1, test_type => 'test', has_results => 'no', is_active => 'yes', test_name => 'test_1', }); my $new = get_last_insert_id('lab_tests'); _do_lab_test_sample_type($new); $dbix->insert('lab_tests', { field_label => 'Linked-1', lab_section_id => 1, test_type => 'test', has_results => 'no', is_active => 'yes', test_name => 'linked_1', }); _do_linked_lab_test($new); $dbix->insert('lab_tests', { field_label => 'Linked-2', lab_section_id => 1, test_type => 'test', has_results => 'no', is_active => 'yes', test_name => 'linked_2', }); _do_linked_lab_test($new); } # screen request #1: $mech->get_ok('/screen/do_initial_screen/1?screen_id=2;option_id=1'); # print_and_exit(); { $mech->has_tag_like( dt => qr(requested lab-tests), 'OK: screen success', ); # print_and_exit(); # check have requested test: $mech->has_tag_like( span => qr(PNH), 'OK: new requested test' ); # print_and_exit(); $mech->has_tag_like( span => qr(\[pending\]), 'OK: new requested test' ); # print_and_exit(); # does not have linked tests: for ('Linked-1','Linked-2') { test_out( 'not ok 1 - foo' ); test_fail( +1 ); $mech->has_tag_like( span => qr($_), 'foo' ); test_test( "OK: no pending $_ lab-test" ); # print_and_exit(); } } # manually request Test-1 which auto-links Linked-1 & Linked-2: $mech->get_ok('/result/=/1'); # print_and_exit(); { $mech->form_name('flow_requests'); $mech->tick('test_id', 10, 1); $mech->submit(); # print_and_exit(); # check have requested test: for ('Test-1', 'Linked-1', 'Linked-2') { $mech->has_tag_like( span => qr($_), "OK: new requested test $_" ); # print_and_exit(); } } $mech->get_ok('/history/=/1'); # print_and_exit(); { my $i = 1; $mech->has_tag_like( td => qr(requested Test-1), "OK: expected history found [$i]" ); # print_and_exit(); $i++; for ('Linked-1', 'Linked-2') { $mech->has_tag_like( td => qr(requested linked test $_), "OK: expected history found [$i]" ); # print_and_exit(); $i++; } } sub _do_linked_lab_test { my $id = shift; my $new = get_last_insert_id('lab_tests'); $dbix->insert( 'linked_lab_test', { parent_test_id => $id, linked_test_id => $new }); _do_lab_test_sample_type($new); } sub _do_lab_test_sample_type { my $id = shift; $dbix->insert( 'lab_test_sample_type', { lab_test_id => $id, sample_type_id => 1 }); }