Bug 37963: Case 2 - Add tests for different case error message

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 4c76d2b565)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Pedro Amorim 2024-09-19 13:49:58 +00:00 committed by Lucas Gass
parent 6987bf779f
commit d4255bf632
1 changed files with 35 additions and 1 deletions

View File

@ -17,7 +17,7 @@
use Modern::Perl;
use Test::More tests => 2;
use Test::More tests => 3;
use Koha::Database;
use Koha::BackgroundJobs;
@ -36,6 +36,7 @@ my $schema = Koha::Database->new->schema;
my $builder = t::lib::TestBuilder->new;
my $sushi_response_errors = {
'invalid_date_arguments' => '{"message":"Invalid Date Arguments","code":3020,"severity":"Error"}',
'invalid_api_key' => '{"Code": 2020, "Severity": "Error", "Message": "API Key Invalid"}',
};
@ -67,6 +68,39 @@ subtest 'enqueue() tests' => sub {
$schema->storage->txn_rollback;
};
subtest 'invalid_date_arguments() tests' => sub {
plan tests => 3;
$schema->storage->txn_begin;
my $ua = Test::MockModule->new('LWP::UserAgent');
$ua->mock('simple_request', sub {
return mock_sushi_response({'error'=>'invalid_date_arguments'});
});
my $usage_data_provider = $builder->build_object(
{ class => 'Koha::ERM::EUsage::UsageDataProviders', value => { name => 'TestProvider' } } );
my $job_args = {
ud_provider_id => $usage_data_provider->erm_usage_data_provider_id,
report_type => 'TR_J1',
begin_date => '2023-08-01',
end_date => '2023-09-30',
ud_provider_name => $usage_data_provider->name,
};
my $job_id = Koha::BackgroundJob::ErmSushiHarvester->new->enqueue($job_args);
my $job = Koha::BackgroundJobs->find($job_id)->_derived_class;
$job->process( $job_args );
is( $job->{messages}[0]->{message}, decode_json($sushi_response_errors->{invalid_date_arguments})->{severity} . ' - ' . decode_json($sushi_response_errors->{invalid_date_arguments})->{message},'SUSHI error invalid_date_arguments is stored on job messages correctly' );
is( $job->{messages}[0]->{type},'error','SUSHI error invalid_date_arguments is stored on job messages correctly' );
is( $job->{messages}[0]->{code},decode_json($sushi_response_errors->{invalid_date_arguments})->{code},'SUSHI error invalid_date_arguments is stored on job messages correctly' );
$schema->storage->txn_rollback;
};
subtest 'invalid_api_key() tests' => sub {
plan tests => 3;