use Test::More import => ['!pass'];
use NGS with => { logger => 'console', log => 'error' }; # spare console from overload
use FindBin qw($Bin); # warn $Bin;
use Dancer2::Test apps => ['NGS'];
use Data::Dumper;
use Modern::Perl;
require 't/test-lib.pl';
# tests _want_vep_result() logic:
# test data ====================================================================
my @test_data = ( # synonymous_variant + variation =~ COSM*
[
'p53 exon 6.2 NEW',
'137:T/C',
'Accepted',
100, 8,
4.94, 81,
],
);
# ==============================================================================
my $args = construct_request(\@test_data);
my $response = dancer_response( POST => '/vep', $args ); # print_output($response);
response_status_is $response => 200; # exit;
# result = 'match' on COSM:
response_content_like $response => qr(p53 exon 6.2 NEW \[137:T/C\]);
response_content_like $response => qr(Processed 1 accepted rows);
response_content_like $response => qr(Sample results for data src "data.txt" \[1\]);
response_content_like $response => qr(Sample match failures \[0\]);
response_content_like $response => qr(VEP results \[8\]);
response_content_like $response => qr(Non-CDS VEP results \[0\]);
response_content_like $response => qr(synonymous_variant);
{ # substitute WT exon 7.2 [177:G/C] - stop_gained with variation = '-':
$test_data[0][0] = 'WT exon 7.2';
$test_data[0][1] = '177:G/C'; # warn Dumper \@test_data;
$args = construct_request(\@test_data);
# result = 'match' on var = '-' & consequence not synonymous_variant
$response = dancer_response( POST => '/vep', $args ); # print_output($response);
response_status_is $response => 200; # exit;
response_content_like $response => qr(Sample results for data src "data.txt" \[1\]);
response_content_like $response => qr(Sample match failures \[0\]);
response_content_like $response => qr(VEP results \[7\]);
}
{ # substitute WT exon 7.2 [177:G/A] - synonymous_variant with variation = '-':
$test_data[0][0] = 'WT exon 7.2';
$test_data[0][1] = '177:G/A'; # warn Dumper \@test_data;
$args = construct_request(\@test_data);
$response = dancer_response( POST => '/vep', $args ); # print_output($response);
response_status_is $response => 200; # exit;
# result = 'no match' on consequence = synonymous_variant
response_content_like $response => qr(WT exon 7.2 \[177:G/A\]);
response_content_like $response => qr(Sample results for data src "data.txt" \[0\]);
response_content_like $response => qr(Sample match failures \[1\]);
response_content_like $response => qr(VEP results \[7\]);
}
{ # substitute ASXL exon 12.2 [157:G/A] - missense_variant with variation =~ 'rs*':
$test_data[0][0] = 'ASXL exon 12.2';
$test_data[0][1] = '157:G/A'; # warn Dumper \@test_data;
$args = construct_request(\@test_data);
$response = dancer_response( POST => '/vep', $args ); # print_output($response);
response_status_is $response => 200; # exit;
# result = 'no match' on variation not one of COSM*, TMP* or '-'
response_content_like $response => qr(ASXL exon 12.2 \[157:G/A\]);
response_content_like $response => qr(Sample results for data src "data.txt" \[0\]);
response_content_like $response => qr(Sample match failures \[1\]);
response_content_like $response => qr(VEP results \[2\]);
}
{ # substitute IDH 1.1 [146:G/A] - synonymous_variant with variation =~ 'rs*':
$test_data[0][0] = 'IDH 1.1';
$test_data[0][1] = '146:G/A'; # warn Dumper \@test_data;
$args = construct_request(\@test_data);
$response = dancer_response( POST => '/vep', $args ); # print_output($response);
response_status_is $response => 200; # exit;
# result = 'no match' on synonymous_variant and not COSM*
response_content_like $response => qr(IDH 1.1 \[146:G/A\]);
response_content_like $response => qr(Sample results for data src "data.txt" \[0\]);
response_content_like $response => qr(Sample match failures \[1\]);
response_content_like $response => qr(VEP results \[4\]);
}
done_testing;