Commit Graph

56797 Commits

Author SHA1 Message Date
Martin Renvoize 9bc31b33da
Bug 38818: Unit tests
Add unit tests for the updated mock module

Sponsored-by: PTFS Europe <https://ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 7597d8f0d1)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:20:44 +02:00
Martin Renvoize 6d18f120de
Bug 38818: Add diag option to t::lib::Mocks::Logger
This patch adds a diag method to the Mocks::Logger object. This aids in
debugging logging errors by simply outputting all log lines to screen in
a diag statement.

Sponsored-by: PTFS Europe <https://ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 17b2b4cd6e)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:20:43 +02:00
Jonathan Druart 794a0e0ed7
Bug 40406: Remove warnings from selenium/basic_workflow.t
t/db_dependent/selenium/basic_workflow.t .. 1/22 CP main = 1.93
t/db_dependent/selenium/basic_workflow.t .. 3/22 CP add patron category = 3.56
t/db_dependent/selenium/basic_workflow.t .. 5/22 CP add patron = 4.31
CP add biblio = 0.29
t/db_dependent/selenium/basic_workflow.t .. 11/22 CP add items = 9.81
t/db_dependent/selenium/basic_workflow.t .. 16/22 CP checkout = 5.97
t/db_dependent/selenium/basic_workflow.t .. 20/22 CP checkin = 4.04
t/db_dependent/selenium/basic_workflow.t .. 22/22 CP holds = 5.60
t/db_dependent/selenium/basic_workflow.t .. ok

This has been used in the past for benchmarking Koha.

I suggest to keep the warn but comment it.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 0e12c572e8)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit c4f54429a7)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:16:45 +02:00
Jonathan Druart aa0feeebdf
Bug 40409: Remove warnings from t/db_dependent/Overdues.t
The tests was wrong, we should make sure the item has been checked in.

We were missing the mock userenv:
Can't use an undefined value as a HASH reference at /kohadevbox/koha/C4/Circulation.pm line 2744. at /kohadevbox/koha/C4/Circulation.pm line 2787

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit fdb9a41af3)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit eb4e66dbfb)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:15:04 +02:00
Jonathan Druart 3b684c6b4f
Bug 40409: Make Overdues.t fail
The test is wrong, the item is not correctly checked in, it should fail.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 5c743feec7)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 9f3c5d2019)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:15:03 +02:00
Jonathan Druart 1be5bf75d3
Bug 40410: Remove warning from Letters.
t/db_dependent/Letters.t .. 95/104 Use of uninitialized value in string eq at /kohadevbox/koha/Koha/Patron.pm line 389.

contactname can be NULL in DB.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 45493d0f06)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 1f2dffb43f)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:12:32 +02:00
Jonathan Druart 75be7ae805
Bug 40411: Remove warnings from Koha/SearchEngine/Elasticsearch.t
Warnings encountered while roundtripping a MARC record to/from USMARC. Failing over to MARCXML. at t/db_dependent/Koha/SearchEngine/Elasticsearch.t line 854.

=> This one is expected: we have generated a record with large fields

item-level_itypes set but no itemtype set for item (1568) at /kohadevbox/koha/Koha/Schema/Result/Item.pm line 1100.
item-level_itypes set but no itemtype set for item (1568) at /kohadevbox/koha/Koha/Schema/Result/Item.pm line 1100.

=> Those 2 ones can be removed by create a biblio and items using
build_sample_biblio and build_sample_item

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 25277e8a4d)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 103c48373e)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:11:31 +02:00
Jonathan Druart 0d08141eb1
Bug 40429: Remove warnings from Koha/Patron/Modifications.t
t/db_dependent/Koha/Patron/Modifications.t .. 1/7 DBIx::Class::Storage::DBI::insert(): Missing value for primary key column 'borrowernumber' on BorrowerModification - perhaps you forgot to set its 'is_auto_increme
nt' attribute during add_columns()? Treating 'borrowernumber' implicitly as an autoinc, and attempting value retrieval at /kohadevbox/koha/Koha/Object.pm line 174
t/db_dependent/Koha/Patron/Modifications.t .. 5/7 DBIx::Class::Storage::DBI::insert(): Missing value for primary key column 'verification_token' on BorrowerModification - perhaps you forgot to set its 'is_auto_inc
rement' attribute during add_columns()? Treating 'verification_token' implicitly as an autoinc, and attempting value retrieval at /kohadevbox/koha/Koha/Object.pm line 174

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f851367cf4)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 0bd9f325c8)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:08:51 +02:00
Jonathan Druart 9338678ae4
Bug 40437: Remove warning from Koha/Installer.t
t/db_dependent/Koha/Installer.t .. 1/4
Use of uninitialized value $db_version in numeric eq (==) at
/kohadevbox/koha/Koha/Installer.pm line 32.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 1974dd9c91)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 8e93b7c900)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:04:53 +02:00
Jonathan Druart 5d26625683
Bug 40438: Remove warnings from Koha/Old/Hold.t
it's an integer.

t/db_dependent/Koha/Old/Hold.t .. 1/3
Value not allowed for auto_incr biblionumber in Biblio at
/kohadevbox/koha/t/lib/TestBuilder.pm line 431.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit dd54cd5062)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit b3bddd0703)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:03:47 +02:00
Baptiste Wojtkowski 152b80cb40
Bug 39997: List of closed serials: reopening shouldn't require the syspref RoutingSerials
Test plan:
1 - Create a closed serial
2 - Disable the syspref "RoutingSerials"
3 - Go to cgi-bin/koha/serials/serials-search.pl and search for the
    closed serial ; click on the "closed" panel of the result -> on the
    actions button, there is no option to reopen
4 - Apply patch
5 - Repeat 3, there is now an option to reopen.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 573b226997)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 48a06d1513)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 15:00:51 +02:00
Doris Tam 48d4abef35
Bug 38966: Fix wrong POD in Koha/CoverImages.pm and Koha/Acquisition/Order/Claims.pm
Test plan:
1. perldoc Koha/Acquisition/Order/Claims.pm
2. Check that it mentions Koha::Acquisition::Order::Claims
3. perldoc Koha/CoverImages.pm
4. Check that it mentions Koha::CoverImages.pm
4. These files no longer mention 'Koha::Cities'

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f72a235de0)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 8e0832fd96)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:54:48 +02:00
Jake Deery 6265e24bf5
Bug 40304: Zebrasrv configs now work on ARM CPUs
This patch adds more module search paths to the zebra-biblios-dom.cfg and zebra-authorities-dom.cfg, so that a larger range of CPU architectures will work with Zebra search unit tests.

This will not change Debian package installs, but it will fix any git-based installs.

TO TEST (you'll need access to an ARM-based CPU, and, preferably, an x86-64 machine):
ON THE ARM-BASED MACHINE:
a)  start ktd, then ktd --shell
b)  in ktd, run: prove -v t/db_dependent/Search.t
c)  notice how the test now fails
APPLY PATCH
d)  rerun step b
e)  notice how the test now passes
ON THE X86-64-BASED MACHINE:
f)  run steps a-e
g)  notice how the test passes, both before and after applying the patch
SIGN OFF

Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 3a6ac8c843)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 3cc750d5ad)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:52:19 +02:00
Tomas Cohen Arazi 999410ea8e
Bug 40419: Fix wrong license
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 6f1bd24e87)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 62104a03a3)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:50:29 +02:00
Tomas Cohen Arazi 82a39f7857
Bug 40419: Changes to testing logic
This patch makes a couple changes to the tests:

* Remove check for Copyright line. The Copyright line should not be mandatory.
* Remove dependency of GPL-related checks on the copyrigth line
  existence. (this highlights several missed checks).
* Skip testing-related templates. Koha ships some templates that are not
  excluded correctly.

This 'fix' will highlight existing errors that were skipped until now.

To test:
1. Run:
   $ ktd --shell
  k$ prove xt/find-license-problems.t
=> FAIL: Tests pass! Some files should make them fail!
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests fail!

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 0a4b25acb5)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 48447cc30c)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:50:29 +02:00
Jonathan Druart 124287bdee
Bug 38102: Fix default sort order
DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception:
DBD::mysql::st execute failed: Unknown column 'date_due desc' in 'order
clause' at /kohadevbox/koha/Koha/Objects.pm line 401

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit bb71c19635)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit bc11cfea77)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:46:04 +02:00
Jonathan Druart ff92a34ca5
Bug 38102: Fix limit to 50 items in the checkout history - OPAC
Checkout history does not limit to 50 items, it's a regression from bug
33949.

To limit to 50 items we need to use "rows", not "limit".

Test plan:
Have more than 50 checkouts and confirm that by default the table only
displays 50 entries.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit dd28d473cd)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit ef5e67a6ce)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:43:10 +02:00
Jonathan Druart 918a22b5c8
Bug 40390: Remove warnings from t/db_dependent/Biblio.t
t/db_dependent/Biblio.t .. 2/25 Finding auth type GENRE/FORM at t/db_dependent/Biblio.t line 300.
Finding auth type PERSO_NAME at t/db_dependent/Biblio.t line 300.
Finding auth type PERSO_NAME at t/db_dependent/Biblio.t line 300.
Finding auth type PERSO_NAME at t/db_dependent/Biblio.t line 300.
Finding auth type PERSO_NAME at t/db_dependent/Biblio.t line 300.
t/db_dependent/Biblio.t .. 12/25 Finding auth type TOPIC_TERM at t/db_dependent/Biblio.t line 300.
Finding auth type TOPIC_TERM at t/db_dependent/Biblio.t line 300.
Finding auth type TOPIC_TERM at t/db_dependent/Biblio.t line 300.
Finding auth type PERSO_NAME at t/db_dependent/Biblio.t line 300.
Finding auth type PERSO_NAME at t/db_dependent/Biblio.t line 300.
Finding auth type PERSO_NAME at t/db_dependent/Biblio.t line 300.
t/db_dependent/Biblio.t .. ok

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit afa1cfb63a)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit ba821f58fb)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:41:37 +02:00
Jonathan Druart e022f334c2
Bug 40378: Remove warnings from api/v1/biblios.t
t/db_dependent/api/v1/biblios.t .. 12/15 DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Duplicate entry 'cZt7U7mP0KD' for key 'itembarcodeidx' at /kohadevbox/koha/Koha/Obj
ect.pm line 174
t/db_dependent/api/v1/biblios.t .. 13/15 DBIx::Class::Storage::DBI::_dbh_execute(): DBI Exception: DBD::mysql::st execute failed: Duplicate entry 'N44vCoe4tX41' for key 'itembarcodeidx' at /kohadevbox/koha/Koha/Ob
ject.pm line 174

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 71eb056850)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 3b4e9dc5cb)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:40:00 +02:00
Jonathan Druart d2af4f0da4
Bug 40388: Remove warning from t/Labels.t
Use of uninitialized value $cn_item in sprintf at /kohadevbox/koha/C4/ClassSplitRoutine/LCC.pm line 53.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 9b0709fb47)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit b8d54707ac)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 14:29:57 +02:00
Fridolin Somers a74c4daa29
Bug 40168: [24.11.x] Tidy 2025-08-01 14:25:09 +02:00
Jonathan Druart 6cc140d470
Bug 40385: Remove warning from Reserves/CancelExpiredReserves.t
t/db_dependent/Reserves/CancelExpiredReserves.t .. 3/4 No reserves HOLD_CANCELLATION letter transported by email at /kohadevbox/koha/C4/Letters.pm line 602.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 10b673ee1c)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 305d081a4e)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:58:20 +02:00
Jonathan Druart aa51b4c9a4
Bug 40373: Remove warning from Reserves.t
t/db_dependent/Reserves.t .. 10/70 No reserves HOLD_CANCELLATION letter transported by email at /kohadevbox/koha/C4/Letters.pm line 602.

We do not test the notification here, we can simply ignore the letters code.
However we do test it later so we need to limit the scope of mock

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 1ceea0019c)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 37341f2994)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:55:29 +02:00
Jonathan Druart e7939ef6e1
Bug 40384: Remove warnings from Koha/Plugins/Patron.t
t/db_dependent/Koha/Plugins/Patron.t .. 1/5 Plugin error (Test Plugin): Exception 'Koha::Exception' thrown 'patron_barcode_transform called with parameter: test_cn_1'
Plugin error (Test Plugin): Exception 'Koha::Exception' thrown 'patron_barcode_transform called with parameter: test_cn_1'
Plugin error (Test Plugin): Exception 'Koha::Exception' thrown 'patron_barcode_transform called with parameter: test_cn_1'

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit cc45e0b3d5)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 520ec5d991)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:50:43 +02:00
Jonathan Druart cbf5dbe7f7
Bug 40380: Remove warnings from Patrons/Import.t - Argument "" isn't numeric in numeric eq (==)
Using perl -MCarp::Always:
Argument "" isn't numeric in numeric eq (==) at /usr/share/perl5/DBIx/Class/Row.pm line 1017, <$handle_1> line 2.
DBIx::Class::Row::_eq_column_values(Koha::Schema::Result::Borrower=HASH(0x57c409b9ec08), "autorenew_checkouts", "", 1) called at /usr/share/perl5/DBIx/Class/Row.pm line 945

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 3aa81fa654)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit dcc3748bdd)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:48:26 +02:00
Jonathan Druart 673d650270
Bug 40380: Remove warnings from Patrons/Import.t - Use of uninitialized value $csvkeycol{"dateexpiry"} in array element
Use of uninitialized value $csvkeycol{"dateexpiry"} in array element at /kohadevbox/koha/Koha/Patrons/Import.pm line 310, <$handle_2> line 2.
Use of uninitialized value $csvkeycol{"dateexpiry"} in array element at /kohadevbox/koha/Koha/Patrons/Import.pm line 310, <$handle_3> line 2.
Use of uninitialized value $csvkeycol{"dateexpiry"} in array element at /kohadevbox/koha/Koha/Patrons/Import.pm line 310, <$handle_4> line 2.
Use of uninitialized value $csvkeycol{"dateexpiry"} in array element at /kohadevbox/koha/Koha/Patrons/Import.pm line 310, <$fh> line 2.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit e21d6c04a9)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 88ae9b2c1f)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:46:45 +02:00
Jonathan Druart 681b2a7bc9
Bug 40403: Remove warning from Circulation_holdsqueue.t
Use of uninitialized value in addition (+) at /kohadevbox/koha/C4/Biblio.pm line 3049.

The context is:

3045     my $current_issues = $biblioitem->totalissues // 0;
3046     if ( defined $value ) {
3047         $totalissues = $value;
3048     } else {
3049         $totalissues = $biblioitem->totalissues + $increase;
3050     }
3051     return 0 if $current_issues == $totalissues;    # No need to update if no changes

It feels correct to use $current_issues to suppress the warning

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 5661df2f70)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 686495ae04)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:45:38 +02:00
Jonathan Druart 702b48ef9a
Bug 40389: Remove t/dummy.t
This file should have been removed years ago.

See the history:

commit a5a419616d
Date:   Tue Aug 28 01:50:55 2007 +0100

    Disable tests

@ t/dummy.t:1 @
+# Dummy test until Test::Harness or similar
+# is used by the other tests to check deps.
+print "1..1\nok 1\n";

Then

commit 7f01995446
Date:   Fri Dec 7 17:15:22 2007 -0600

    installer (part 3): enabled 'make test'

-   # disable tests
-   'test' => {TESTS => 't/dummy.t'},

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b8de89eaaa)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 21ca620e0d)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:45:05 +02:00
Jonathan Druart 0fd1ec64e2
Bug 40043: Try to prevent Agreements_spec.ts to fail randomly
One test is failing with:
"""
https://on.cypress.io/element-has-detached-from-dom" type="CypressError"><![CDATA[CypressError: Timed out retrying after 10050ms: `cy.click()` failed because the page updated while this command was executing. Cypress tried to locate elements based on this query:

> <a.show>

We initially found matching element(s), but while waiting for them to become actionable, they disappeared from the page. Common situations why this happens:
  - Your JS framework re-rendered asynchronously
  - Your app code reacted to an event firing and removed the element

You can typically solve this by breaking up a chain. For example, rewrite:

> `cy.get('button').click().click()`

to

> `cy.get('button').as('btn').click()`
> `cy.get('@btn').click()`

https://on.cypress.io/element-has-detached-from-dom
    at retryActionability (http://localhost:8081/__cypress/runner/cypress_runner.js:112246:74)
    at tryCatcher (http://localhost:8081/__cypress/runner/cypress_runner.js:1807:23)
    at Promise.attempt.Promise.try (http://localhost:8081/__cypress/runner/cypress_runner.js:4315:29)
    at whenStable (http://localhost:8081/__cypress/runner/cypress_runner.js:143192:68)
    at <unknown> (http://localhost:8081/__cypress/runner/cypress_runner.js:143133:14)
    at tryCatcher (http://localhost:8081/__cypress/runner/cypress_runner.js:1807:23)
    at Promise._settlePromiseFromHandler (http://localhost:8081/__cypress/runner/cypress_runner.js:1519:31)
    at Promise._settlePromise (http://localhost:8081/__cypress/runner/cypress_runner.js:1576:18)
    at Promise._settlePromise0 (http://localhost:8081/__cypress/runner/cypress_runner.js:1621:10)
    at Promise._settlePromises (http://localhost:8081/__cypress/runner/cypress_runner.js:1701:18)
    at Promise._fulfill (http://localhost:8081/__cypress/runner/cypress_runner.js:1645:18)
    at <unknown> (http://localhost:8081/__cypress/runner/cypress_runner.js:5450:46)
From Your Spec Code:
    at Context.eval (webpack://koha/./t/cypress/integration/ERM/Agreements_spec.ts:630:18)]]></failure>
    </testcase>
  </testsuite>
"""

My guess is that it happens because we don't wait for the /agreements
response.

Test plan:
Test should still pass, we will see how Jenkins behave after it's
pushed.

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit cebc45ad03)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 7ae55e2274)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:43:26 +02:00
Emmi Takkinen a779b92a7a
Bug 40116: Do not display "Patron is already a guarantor..." popup when error occurs
If a yellow error message appears when saving the guaranteed patron,
also an extra popup message "Patron is already a guarantor for this
patron" will appear on the screen. It should only appear when you try
to add the same patron as a guarantor that already is a guarantor for
that patron. This happens because js function select_user is triggered
every time when guarantor data is send back to front-end with variable
new_guarantors if error occurs. Already existing guarantors shouldn't
be send back to front-end since their data is not lost. This patch
changes existing guarantors form elements to use classes "guarantor_id"
and "guarantor_relationship" to prevent this.

To test:
1. Find a patron with Patron guarantor or add first a Patron guarantor
   (not a Non-patron guarantor) to a juvenile patron and save.
2. Edit again the same patron with guarantor and modify their age
   to be greater than the upperage or under the required age of the
   patron category.
   => Notice that you will get a yellow message "The following fields
      are wrong. Please fix them..."
   => Notice that you will also get a pop up notice that says "Patron is
      already a guarantor for this patron".
3. Apply this patch.
4. Repeat step 2.
   => Confirm that yellow message box is displayed but "Patron is..."
      pop-up is not
   => Also confirm that guarantors data is not lost.
5. Try to add same patron guarantor as guarantor for guarantee patron
   again.
   => Confirm that pop-up is displayed right after attempting to add
      guarantor.
6. Try to add new guarantor for patron.
   => New guarantor should be added.
7. Attempt to save the patron.
   => Confirm that both guarantors data is still displayed in form.
8. Fix patrons age and attempt to save.
   => Patron is saved and both guarantors are displayed in their
      details.

Sponsored-by: Koha-Suomi Oy
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit f2fe453dd4)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 073fbd2696)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:41:27 +02:00
Jonathan Druart e06afd310a
Bug 40344: Fix KohaTable_spec.ts
> Cannot read properties of undefined (reading 'description')

Not sure since which change this is failing but it has always been
wrong.

The code in patron-search.inc is:
        var categories = [% To.json(categories) | $raw %].map(e => {
            e['_id'] = e.categorycode.toLowerCase();
            e['_str'] = e.description;
            return e;
        });
        var categories_map = categories.reduce((map, e) => {
            map[e._id] = e;
            return map;
        }, {});

It's the keys that are lower cased.

Test plan:

  `yarn cypress run \
    --config video=false,screenshotOnRunFailure=false \
    --spec t/cypress/integration/KohaTable/KohaTable_spec.ts`
should return green

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 7bc3b24827)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 16439a30a7)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:37:17 +02:00
Jonathan Druart a8795dd604
Bug 40402: Make xt/find-license-problems.t process files that are in the git index
And only those files.

Currently the test is failing with
02:52:31 koha_1       | #   Failed test at xt/find-license-problems.t line 65.
02:52:31 koha_1       | #          got: '0'
02:52:31 koha_1       | #     expected: '1'
02:52:33 koha_1       | # File ./misc/translator/po/LICENSE has wrong copyright: hasgpl=1, hasv3=1, hasorlater=1, haslinktolicense=0, hasfranklinst=0
02:52:33 koha_1       | # Looks like you failed 1 test of 1381.
02:52:33 koha_1       | [00:51:24] xt/find-license-problems.t

Because a LICENSE file has been added to koha-l10n, and now this test fails on it.

27ab9ff4d2

But we should not test files that are not part of the git index.

Test plan:
0. Do not apply this patch
1. Edit xt/find-license-problems.t, add
  warn scalar(@files);
2. Run `prove xt/find-license-problems.t`
=> Notice that 4056 files are processed
Note that you need to have a clean git repo. You can run the following
git command BUT BEWARE /*\ it will remove all changes not committed
  `git clean -d -f`
3. Apply this patch, prove again
=> Tests are passing, with the same number of tests
xt/find-license-problems.t .. ok
All tests successful.
Files=1, Tests=4056

Note that I think we lost one file, as Test::NoWarnings is adding a
test. But I don't think it is worth the trouble to find out which one is
missing.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 491ffdc7f1)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 779c9cb17d)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:33:18 +02:00
Jonathan Druart ef76977da6
Bug 40350: Remove warnings from t/db_dependent/Holds.t
Use of uninitialized value in numeric le (<=) at /kohadevbox/koha/C4/Circulation.pm line 3151.
Use of uninitialized value in addition (+) at /kohadevbox/koha/C4/Circulation.pm line 3158.
Use of uninitialized value in numeric le (<=) at /kohadevbox/koha/C4/Circulation.pm line 3151.
Use of uninitialized value in addition (+) at /kohadevbox/koha/C4/Circulation.pm line 3158.
Use of uninitialized value in numeric le (<=) at /kohadevbox/koha/C4/Circulation.pm line 3151.
Use of uninitialized value in addition (+) at /kohadevbox/koha/C4/Circulation.pm line 3158.

$issue->renewal_count is undefined in C4::Circulation:3151, but it's NOT
NULL in DB
We need to refetch the row to get the default defined at the DB level

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 53b3d5756e)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit a067120e70)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:29:50 +02:00
Jonathan Druart 266523f2fe
Bug 40351: Remove warning from oha/SearchEngine/Elasticsearch/Search.t
Use of uninitialized value in string comparison (cmp) at /kohadevbox/koha/Koha/SearchEngine/Elasticsearch/Search.pm line 536.

I think this is the correct fix. We generate a random av category that
is used in the data, so $label get undef:
521                 $label = $authorised_values{$t};

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit d6cbe0a25e)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 9f6088d48b)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:26:23 +02:00
Jonathan Druart 202cf023e4
Bug 40353: Remove warnings from Koha/Patron.t
C4::Context->userenv not defined! at /kohadevbox/koha/Koha/Patron.pm line 2152.
C4::Context->userenv not defined! at /kohadevbox/koha/Koha/Patron.pm line 2152.
C4::Context->userenv not defined! at /kohadevbox/koha/Koha/Patron.pm line 2152.

We need to mock the userenv

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 3b1bc1bbc5)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit b010fc5d49)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:22:41 +02:00
Jonathan Druart 2eb7815500
Bug 40348: Remove warnings from api/v1/two_factor_auth.t
02:28:36 koha_1       | WARNING: The key derivation method "opensslv1" is deprecated. Using -pbkdf=>'pbkdf2' would be better.
02:28:36 koha_1       | Pass -nodeprecate=>1 to inhibit this message.
02:28:36 koha_1       |  at /kohadevbox/koha/Koha/Patron.pm line 3216.

We should deal with that on a separate bug report. For now we can remove
the warnings from the log/output.

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 12e4e92e53)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit d0727bab0d)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 11:21:35 +02:00
Jonathan Druart 2dfa858d05
Bug 40002: Add a cypress test
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit da75bdc692)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 0b9c7a09d3)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 10:32:15 +02:00
Jonathan Druart 2ca099d72c
Bug 40002: Fix filtering of patrons by 'Browse by last name'
We cannot longer filter patrons by first letter, the browser errors
"Uncaught TypeError: v.replace is not a function"

Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit ea359a10a9)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 61f9a253e4)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 10:32:15 +02:00
Tomas Cohen Arazi 889c45effe
Bug 39932: Remove split in template
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 8d9bdbde07)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 10:26:09 +02:00
Tomas Cohen Arazi e22234ff25
Bug 39932: Add POD for Koha::Item->_status()
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 4609ffd715)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 10:24:28 +02:00
Tomas Cohen Arazi 0c09ee06e7
Bug 39932: Make Koha::Item->_status return an arrayref
This patch makes the method return an actual array instead of a
comma-separated string. The API spec is adjusted so it also expects an
array in the response.

Tests are adjusted for the new return value.

To test:
1. Apply this patch
2. Run:
   $ ktd --shell
  k$ yarn api:bundle
  k$ prove t/db_dependent/Koha/Item.t
=> SUCCESS: Tests pass!
3. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit ffab355be0)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 10:24:28 +02:00
Baptiste Wojtkowski 2d5d29e164
Bug 37334: [24.11] Allow filter holdings table by status (squashed) 2025-08-01 10:22:42 +02:00
Jonathan Druart 71678de6d5
Bug 40168: Remove cleanup() call from afterEach
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 6096d986d5)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 61d0294e62)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 09:44:51 +02:00
Jonathan Druart f54810d82b
Bug 40168: Restore afterEach in KohaTable Cypress tests
We defined an anonymous function inside an arrow function, and Cypress does not call it.

Test plan:
Set AlwaysShowHoldingsTableFilters to "Do not"
Run t/cypress/integration/KohaTable/Holdings_spec.ts:
  yarn cypress run --spec t/cypress/integration/KohaTable/Holdings_spec.ts

When done, have a look at the value of AlwaysShowHoldingsTableFilters
=> without this patch it has been modified (not restored) and is set to
"Do"
=> With this patch applied the original value is restored at the end of
the tests (actually the end of each test)

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b83df697de)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 98ca5b0800)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 09:44:50 +02:00
Jonathan Druart 2a26f2e137
Bug 40127: Add a Cypress test
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 90c2a53b99)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 27292c9ea2)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-08-01 09:44:24 +02:00
Jonathan Druart 4031c7997e
Bug 40347: Remove warnings from Koha/Hold.t
Those diag statements are not really needed

    # Filling a hold when pref enabled should trigger a test
    # Filling a hold when pref disabled should not trigger a test
    # Updating a hold location when pref disabled should not trigger a test
    # Updating a hold location when pref enabled should trigger a test
    # Update with no change to pickup location should not trigger a test

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit b6c8cee965)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit cfe55afa92)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-07-31 16:49:41 +02:00
Jonathan Druart c08ce7a820
Bug 40169: mockData - Do not replace _id if passed
If we build an object and pass a primary key (ie. suffixed by _id) we
should not replace it.

Test plan:
The test highlights the problem, it won't affect existing tests.
0. Apply only the first patch (Cypress tests)
1. Run yarn cypress run t/cypress/integration/t/mockData.ts
=> It fails
2. Apply this patch
=> It passes

Signed-off-by: David Nind <david@davidnind.com>

Amended-by: Jonathan Druart
Remove .only

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 0aaf193a75)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit b1ce0e9f57)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-07-31 16:47:12 +02:00
Jonathan Druart 1d101539f2
Bug 40169: Add a test
Signed-off-by: David Nind <david@davidnind.com>

Amended by: Jonathan Druart
Remove .only

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit ea703016d4)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit c0752f2312)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-07-31 16:47:12 +02:00
Jonathan Druart c162765890
Bug 39315: (bug 38108 follow-up) Add Cypress tests
1. We move from const to var so that we can modify the value of the
variable from the Cypress tests.

2. Also remove win.libraries_map as it seems that our code is no longer
failing if it's missing (we added more checks I guess)

3. Improved selectors for the show/hide filters links
-                    cy.get(".hide_filters").click();
+                    cy.get(`.${table_id}_table_controls .hide_filters`).click();

Test plan:
Both commands should pass
 yarn cypress run --spec t/cypress/integration/PatronSearch_spec.ts
 yarn cypress run --spec t/cypress/integration/t/mockData.ts

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit e1cbc7780a)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-07-31 16:43:00 +02:00
Jonathan Druart 151ce99934
Bug 39315: MockData - generate full objects for libraries and item types
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit cb384b2a1c)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-07-31 16:43:00 +02:00