From 96c8e22e48dfec3336565ad9b175e78bd5098685 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 31 Jan 2017 12:39:53 -0300 Subject: [PATCH] Bug 13757: (regression tests) Empty attributes should delete existing This patch introduces tests for the required functionality. To test: - Run: $ prove t/db_dependent/Koha/Patron/Modifications.t => FAIL: The current code doesn't work like that Signed-off-by: Tomas Cohen Arazi https://bugs.koha-community.org/show_bug.cgi?id=13737 --- t/db_dependent/Koha/Patron/Modifications.t | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Koha/Patron/Modifications.t b/t/db_dependent/Koha/Patron/Modifications.t index 6102316ea0..3ea8aee5fa 100755 --- a/t/db_dependent/Koha/Patron/Modifications.t +++ b/t/db_dependent/Koha/Patron/Modifications.t @@ -132,7 +132,7 @@ subtest 'store( extended_attributes ) tests' => sub { subtest 'approve tests' => sub { - plan tests => 14; + plan tests => 18; $schema->storage->txn_begin; @@ -224,6 +224,30 @@ subtest 'approve tests' => sub { is( $patron_attributes[2]->{attribute}, 'None', 'Attribute updated correctly (attribute)' ); + my $empty_code_json = '[{"code":"CODE_2","value":""}]'; + $verification_token = md5_hex( time() . {} . rand() . {} . $$ ); + + $patron_modification = Koha::Patron::Modification->new( + { borrowernumber => $patron->borrowernumber, + extended_attributes => $empty_code_json, + verification_token => $verification_token + } + )->store(); + ok( $patron_modification->approve, + 'Patron modification correctly approved' ); + @patron_attributes + = map { $_->unblessed } + Koha::Patron::Attributes->search( + { borrowernumber => $patron->borrowernumber } ); + + is( $patron_attributes[0]->{code}, + 'CODE_1', 'Untouched attribute type is preserved (code)' ); + is( $patron_attributes[0]->{attribute}, + 'VALUE_1', 'Untouched attribute type is preserved (attribute)' ); + + my $count = Koha::Patron::Attributes->search({ borrowernumber => $patron->borrowernumber, code => 'CODE_2' })->count; + is( $count, 0, 'Attributes deleted when modification contained an empty one'); + $schema->storage->txn_rollback; }; -- 2.11.0