#!/usr/bin/perl use Test::WWW::Mechanize::CGIApp; use Test::Builder::Tester; use strict; use warnings; use Test::More tests => 29; # use Test::More 'no_plan'; =begin # tests: 1) try to register new result summary option with no lab sections 2) register new result summary option 3) edit new result summary option 4) create new lab section with has_result_summary set no 5) test for absence of new lab section in new result summary option page 6) set new lab section has_result_summary to yes 7) test for presence of new lab section in new result summary option page 8) set new lab section is_active to no 9) test for absence of new lab section in new result summary option page =cut require 't/test-lib.pl'; my $mech = get_mech(); do_login(); # print $fh $mech->content; # exit; # need to drop & re-create following tables: foreach ( qw/lab_sections/ ) { drop_and_recreate($_); } $mech->get_ok("/config/result-summary-options"); # print_and_exit(); # check for expected error msg: $mech->content_contains( get_messages('admin')->{no_sections}, 'OK: need lab sections first', ); # add lab_section direct: { my $dbix = get_dbix(); my %new = ( section_name => 'Histology', has_result_summary => 'yes', is_active => 'yes', ); $dbix->insert('lab_sections', \%new); # print_and_exit(); } $mech->get_ok("/config/result-summary-options"); # print_and_exit(); # check no error msg: $mech->content_lacks( get_messages('admin')->{no_sections}, 'OK: need lab sections first', ); # print_and_exit(); { $mech->field(id => 1); $mech->submit(); # print_and_exit(); $mech->has_tag( option => 'Histology', 'OK: expected option present', ); $mech->form_name('result_summary_option'); $mech->field(description => 'Carcinoma of prostate'); $mech->submit(); # print_and_exit(); lacks_dfv_errors(); # print_and_exit(); $mech->content_contains( get_messages('action')->{create_success}, 'OK: new record succeeded', ); # print_and_exit(); } # edit last entry: { my $id = get_last_insert_id('result_summary_options'); $mech->get_ok('/config/result-summary-options/edit/'.$id); # print_and_exit(); $mech->field(is_active => 'no'); $mech->submit_form(); # print_and_exit(); lacks_dfv_errors(); # print_and_exit(); $mech->content_contains( get_messages('action')->{edit_success}, 'OK: new record succeeded', ); # print_and_exit(); } # new lab_section without results_summary: $mech->get_ok("/admin/lab_section"); # print_and_exit(); { my %new = ( section_name => 'Flow screen', has_results_summary => 'no', is_active => 'yes', sample_type_id => 0, # OK as already hace combination registerd in test_data.pl ); $mech->submit_form(fields => \%new); # print_and_exit(); $mech->content_like( qr(get_ok("/config/result-summary-options"); #print_and_exit(); { # has expected lab_section: $mech->has_tag_like( option => 'Histology', 'OK: expected lab_section present', ); # doesn't have new lab_section: test_out( 'not ok 1 - foo' ); test_fail( +1 ); $mech->has_tag_like( option => 'Flow screen', 'foo' ); test_test( 'OK: new inactive lab section not present' ); } # edit new lab_section, has_results_summary -> 'yes': $mech->get_ok("/admin/lab_section/edit/2"); # print_and_exit(); { $mech->field(has_result_summary => 'yes'); $mech->submit_form(); # print_and_exit(); lacks_dfv_errors(); # print_and_exit(); $mech->content_contains( get_messages('action')->{edit_success}, 'OK: new record succeeded', ); # print_and_exit(); } # get result summary options page back: $mech->get_ok("/config/result-summary-options"); # print_and_exit(); { # has new lab section now: $mech->has_tag_like( option => 'Flow screen', 'OK: new lab_section present', ); } # edit new lab_section, is_active -> 'no': $mech->get_ok("/admin/lab_section/edit/2"); # print_and_exit(); { $mech->field(is_active => 'no'); $mech->submit_form(); # print_and_exit(); lacks_dfv_errors(); # print_and_exit(); $mech->content_contains( get_messages('action')->{edit_success}, 'OK: new record succeeded', ); # print_and_exit(); } # get result summary options page back: $mech->get_ok("/config/result-summary-options"); # print_and_exit(); { # now doesn't have new lab_section: test_out( 'not ok 1 - foo' ); test_fail( +1 ); $mech->has_tag_like( option => 'Flow screen', 'foo' ); test_test( 'OK: new inactive lab section not present' ); } # do_logout(); logout link not available for admin function