From 9f8e0ca383c0d7f92e1be8ab569489bbf4fd729b Mon Sep 17 00:00:00 2001 From: Emmi Takkinen Date: Thu, 24 Apr 2025 13:46:27 +0300 Subject: [PATCH 2/2] Bug 34776: Add unit tests for sub restore_form_values Test that input values don't change when send to the sub restore_form_values. To test prove t/Form_MessagingPreferences.t Sponsored-by: Koha-Suomi Oy --- t/Form_MessagingPreferences.t | 45 +++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/t/Form_MessagingPreferences.t b/t/Form_MessagingPreferences.t index fd1d5fee7b..44bcdec623 100755 --- a/t/Form_MessagingPreferences.t +++ b/t/Form_MessagingPreferences.t @@ -6,21 +6,52 @@ use Template; use Test::More tests => 1; use Test::MockModule; + #use Test::NoWarnings; +use t::lib::TestBuilder; +use t::lib::Mocks; use C4::Form::MessagingPreferences; -subtest 'restore_values' => sub { +my $builder = t::lib::TestBuilder->new; +my $schema = Koha::Database->new->schema; + +subtest 'restore_form_values' => sub { + plan tests => 1; - my $cgi = CGI->new; - my $template_module = Test::MockModule->new( 'Template' ); - my $vars = {}; + + my $cgi = CGI->new; + my $template_module = Test::MockModule->new('Template'); + my $vars = {}; $template_module->mock( 'param', sub { my ( $self, $key, $val ) = @_; $vars->{$key} = $val; } ); my $template = Template->new( ENCODING => 'UTF-8' ); + $schema->storage->txn_begin; + + my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); + t::lib::Mocks::mock_preference( 'EnhancedMessagingPreferences', 1 ); + C4::Members::Messaging::SetMessagingPreference( + { + borrowernumber => $patron->id, + message_transport_types => ['email'], + message_attribute_id => 2, + days_in_advance => 10, + wants_digest => 1 + } + ); + + C4::Form::MessagingPreferences::set_form_values( { borrowernumber => $patron->id }, $template ); + my $set_form_values_vars = $vars; + + $cgi->param( -name => '2', -value => 'email' ); + $cgi->param( -name => '2-DAYS', -value => '10' ); + $cgi->param( -name => 'digest', -value => '1' ); + C4::Form::MessagingPreferences::restore_form_values( $cgi, $template ); - require Data::Dumper; warn Data::Dumper::Dumper( $vars ); #FIXME Remove debugging - # TODO Add some checking on $vars->{messaging_preferences} here + is_deeply( + $set_form_values_vars, $vars, + "Messaging preferences don't change when handled with restore_form_values." + ); - ok(1); # FIXME Replace + $schema->storage->txn_rollback; }; -- 2.34.1