Commit Graph

58396 Commits

Author SHA1 Message Date
Matt Blenkinsop f45dd34d6e
Bug 40417: Regression test
prove t/db_dependent/Koha/REST/Plugin/Objects.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:39 -06:00
Tomas Cohen Arazi 17b851bff0
Bug 40424: Make query-in-body rely on `$c->req->json`
This patch removes the reliance on `$c->validation->output` for the
query-in-body feature. This will allow bug 40417 to move forward.

It also fixes some wrong design decisions we made 5-6 years ago. This
was discussed with the Mojolicious::Plugin::OpenAPI maintainer and the
agreement was `$c->validation->output` was not stable nor intended to be
accessed like we do.

To test:
1. Run:
   $ ktd --shell
  k$ prove t/Koha/REST/Plugin/Query.t \
           t/db_dependent/api/v1/*.t \
           t/db_dependent/Koha/REST/Plugin/*
=> SUCCESS: Tests pass!
2. Apply this patchset
3. Repeat 1
=> SUCCESS: Tests pass!
4. Sign off :-D

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:38 -06:00
Tomas Cohen Arazi 710bf4bb1b
Bug 40424: Simplify existing code - preparation
I wanted to isolate the changes for the query-in-body handling and it
made sense to refactor this dupicated code at the same time. So I add
this patch for tidying the area in preparation for the other part.

Duplicated code gets simplified.

To test:
1. Apply the unit tests patch
2. Run:
   $ ktd --shell
  k$ prove t/Koha/REST/Plugin/Query.t \
           t/db_dependent/api/v1/*.t \
           t/db_dependent/Koha/REST/Plugin/
=> SUCCESS: Tests pass!
3. Apply this patch
4. Repeat 2
=> SUCCESS: Tests pass!
5. Sign off :-D

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:38 -06:00
Tomas Cohen Arazi 5c82766985
Bug 40424: Add missing tests for search in body
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:37 -06:00
Tomas Cohen Arazi 5e94e44ee2
Bug 40423: Add helper to stash x-koha-request-id header value
This patch aligns handling of the header with how other headers are
managed.

* A helper is added which reads the header and stashes the value
* The helper is called in the same place similar helpers are called
  (authenticate_api_request)
* The `objects.search_rs` helper is adjusted to use the stashed value
  instead of picking it from the reserved params.

To test:
1. Apply this patches
2. Run:
   $ ktd --shell
  k$ prove t/Koha/REST/Plugin/Query.t \
           t/db_dependent/api/v1/*.t \
           t/db_dependent/Koha/REST/Plugin/*
=> SUCCESS: Tests pass! No behavior change!
3. Sign off :-D

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:37 -06:00
Tomas Cohen Arazi 84c8f53769
Bug 40423: Unit tests
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@openfifth.co.uk>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:36 -06:00
Aman Pilgrim b3666a7233
Bug 37604: Add an ID to the batch record deletion "Skip biblio...." checkbox
This patch adds an ID to the "Skip bibliographic records with open
acquisition orders" checkbox on the batch record deletion page (Cataloging >
Batch editing > Batch record deletion".

This is required so that when selecting or unselecting the checkbox, the focus
remains on the checkbox.

Test plan:
1. Navigate to Home > Cataloging > Batch record deletion
2. Click 'Skip bibliographic records with open acquisition orders' to toggle
   the Record type checkbox (selected by default).
3. Inspect the page (right click the page, select Inspect, and look at the
   values in the checheckbox input field):
  . before the patch there is no id for the field
  . after the patch there is an id="skip_open_orders" for the checkbox field

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>
2025-07-23 16:36:36 -06:00
Martin Renvoize a1bfc15cbf
Bug 40387: Comment some of the superflous diag
The test output was a little verbose in places, however the diag's can
be helpful when debugging failures. I've opted to comment rather than
completely remove them.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:35 -06:00
Martin Renvoize 4c69085376
Bug 40387: Add tests for create_edi_order logger calls
Tests for the logger calls introduced in the create_edi_order
in the last commit.

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:35 -06:00
Martin Renvoize ac3eced5d3
Bug 40387: Add Test::NoWarnings and replace carp with Koha::Logger
This patch adds Test::NoWarnings to our EDI unit tests. In doing so, it
reminded me that we still had some old carp style error handling in the
process_quote section and that we shoudl replace those with calls to
Koha::Logger instead.

Changes made:
1. Added Test::NoWarnings import to catch any warnings
2. Replace 'carp "Message"' appropriately with
   '$logger->warn("Message")'

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:34 -06:00
Martin Renvoize dda29248ba
Bug 40387: Add test for undefined tax rate handling in EDI processing
This adds a test to verify that EDI invoice processing correctly handles
invoices without TAX segments (undefined tax rates).

The test covers:
1. Processing invoices without TAX segments
2. Verifying no warnings about uninitialized values in multiplication
3. Confirming tax rates are set to 0 when no tax information is present
4. Ensuring invoice processing completes successfully

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:34 -06:00
Martin Renvoize 68aa216317
Bug 40387: Fix undefined tax rate warnings in EDI invoice processing
When processing EDI invoices without TAX segments, warnings were
generated due to undefined tax rates in multiplication operations.

The tax_rate() method in Koha::Edifact::Line correctly returns undef
when no TAX segments are present in the EDI message. However, the
invoice processing code in Koha::EDI didn't handle this case properly.

This patch fixes the issue by:
- Adding checks for undefined tax rates before using them in calculations
- Defaulting to 0 tax rate when no tax information is present
- Ensuring tax_value calculations use 0 instead of undefined values

This eliminates "Use of uninitialized value in multiplication" warnings
while maintaining correct processing of invoices without tax information.

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:33 -06:00
Martin Renvoize ac266cad8b
Bug 40386: Remove warnings from EDI when running tests
This patch fixes several warnings that occur when running Edifact tests:

1. Changed `my $self = ()` to `my $self = {}` in Koha::Edifact constructor
   to properly initialize as hashref instead of empty list
2. Added null/empty checks in Koha::Edifact::Segment::_parse_seg() to prevent
   warnings when processing undefined or empty segments
3. Added null/empty checks in Koha::Edifact::Segment::_get_elements() to
   handle undefined segments gracefully
4. Added Test::NoWarnings to t/Edifact.t to catch any remaining warnings

These changes eliminate "Use of uninitialized value" warnings and ensure
clean test runs without affecting EDI functionality.

Test plan:
1. Run prove t/Edifact.t and verify no warnings are displayed
2. Test EDI message processing to ensure no regression

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:33 -06:00
Lucas Gass 8b494cbad2
Bug 40405: DBIC Schema changes
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:32 -06:00
Lucas Gass 7dc06b2f0c
Bug 40405: DBRev 25.06.00.005
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:32 -06:00
Jonathan Druart fe14f8b7c6
Bug 40405: And ILLOpacUnauthenticatedRequest
No idea why it was not NULL in DB when I did my first SELECT

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:31 -06:00
Jonathan Druart ca6cbc3cf9
Bug 40405: Set decreaseLoanHighHolds\* to 0
When reviewing the different sysprefs that had "NULL" as default, I
only found those 2 occurrences that could be problematic. I think we
should default to 0 here.

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:31 -06:00
Jonathan Druart a3b4b5cdd0
Bug 40405: Set systempreferences.value to NOT NULL
Some sysprefs have NULL as their default value, and systempreferences.value allows NULL values.

However C4::Context->set_preference does not unset a syspref if "undef" is passed.

Additionally some of the sysprefs that have NULL as default will generate warnings in the logs (and test suite output).

opac/opac-suggestions.pl:        for my $f ( split( /\s*\,\s*/, C4::Context->preference("OPACSuggestionUnwantedFields") ) ) {

Here is the current list:
+-------------------------------+-------+
| variable                      | value |
+-------------------------------+-------+
| decreaseLoanHighHoldsDuration | NULL  |
| decreaseLoanHighHoldsValue    | NULL  |
| ILLHiddenRequestStatuses      | NULL  |
| ILLOpacbackends               | NULL  |
| ILLSendStaffNotices           | NULL  |
| ListOwnerDesignated           | NULL  |
| MarcFieldDocURL               | NULL  |
| MaxFine                       | NULL  |
| OPACSuggestionUnwantedFields  | NULL  |
| ReportsExportLimit            | NULL  |
| SerialsSearchResultsLimit     | NULL  |
+-------------------------------+-------+

Test plan:
Code review required here, please confirm the above and that the
different occurrences do not use "undef" as a value.

Note that some tests now do not longer generate warnings
(eg. t/db_dependent/selenium/opac_ill_requests.t)

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:30 -06:00
Jonathan Druart 15a8f0444d
Bug 40371: Remove warnings from Budgets.t output
t/db_dependent/Budgets.t .. 153/156 Use of uninitialized value in multiplication (*) at /kohadevbox/koha/Koha/Acquisition/Order.pm line 543.
Use of uninitialized value in numeric eq (==) at /kohadevbox/koha/Koha/Acquisition/Order.pm line 554.
t/db_dependent/Budgets.t .. 154/156 Use of uninitialized value in multiplication (*) at /kohadevbox/koha/Koha/Acquisition/Order.pm line 543.
Use of uninitialized value in numeric eq (==) at /kohadevbox/koha/Koha/Acquisition/Order.pm line 554.
t/db_dependent/Budgets.t .. 155/156 Use of uninitialized value in addition (+) at /kohadevbox/koha/Koha/Acquisition/Order.pm line 510.

This change seems correct, but I am not 100% sure it won't introduce a
regression. What about 0 vs undef?

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:30 -06:00
Janusz Kaczmarek 1835ced4c0
Bug 40466: Zebra status misleading in "Server information" tab
After changes to about.pl the checking of the Zebra status has landed
in "sysinfo" section instead of "about". As a result "Zebra status"
always reports "Running" even if Zebra is off.

Test plan:
==========
1. Turn zebra server off (koha-zebra --stop kohadev) and check in
   "Server information" (More > About Koha) the "Zebra status" info.
   You will see "Running".
2. Apply the patch ; restart_all ; koha-zebra --stop kohadev
3. Check "Zebra status" in "Server information". You should see now:
   "Zebra server seems not to be available. Is it started?".

Signed-off-by: David Flater <flaterdavid@gmail.com>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:29 -06:00
Marion Durand 4581e399bb
Bug 39896: Add UNIMARC support for AuthorLinkSortBy
This patch add support for AuthorLinkSortBy and AuthorLinkSortOrder in
the default UNIMARC XSLT files.

The description of the syspref is also slighly updated to hint users of
custom XSLT file about the need to update their template.

To test:
0. On a UNIMARC database
1. Set AuthorLinkSortBy to 'title' and AuthorLinkSortORder to
   'descending'
2. On the intranet and OPAC, search for an author you have multiple
   titles from and click on a result
3. Click on a link one a name for an author
4. Note a new search is performed, sorted by field from defaultSortField
   preference and not by title descending
5. Apply the patch
6. restart_all
7. Check that the syspref description now include a note about custom
   XSLT files
8. Repeat step 2 and 3
9. Note a new search is performed, sorted by title descending
10. Test other values - confirm links are updated in both staff and opac

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>
2025-07-23 16:36:29 -06:00
Emily Lamancusa 672982a683
Bug 39502: (QA follow-up) Remove title attribute as well
When an element should be ignored by screen readers, it should have no
title attribute or an empty title attribute, in addition to a null alt
attribute.

Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:28 -06:00
Alexander Blanchard c5f99a3150
Bug 39502: Web Usability: Decorative Images Do Not Need ALT Text
A accessibility audit has highlighted that some of the decorative images on
the opac have alt text which is often followed by a spen that also contains the same
text. This results in screen readers reading this information twice.
The suggested solution is to set the alt text to null in these instances.

Test Plan:
Prior to applying patch:
1) Navigate to Koha OPAC
2) Carry out a search
3) On one of the records right click on the  Material Type: under the heading
4) Select Inspect
5) Note that the image has an alt text that matches the span that follows
6) Click on the item title and repeat the process for the icon below the contributors.
7) Scroll down to the holdings table and repeat the process for the image in the Item Type column
8) Apply the patch
9) Repeat the steps above and notice that the alt is now null in order to ignored by screen readers
11) Note that for the Dev tools may show alt but if you right click on the page and select View Page Source you will see that the code is alt="" as expected by screen readers
12) Note that for alt tags that have been updated in the xsl files e.g. the small icons that follow 'Material Type: ' may be cached.

Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:28 -06:00
katy rayn 152b8ef199
Bug 39066: Update output terminology for reports
This patch updates the terminology for the output for
reports from "To screen into the browser" to
"To screen in the browser" ("into" changed to "to").

Test plan:
1. Go to Reports
2. Click on Acquisitions
3. Check output language is To screen in the browser
4. Go to Report
5. Click on Patrons
6. Check output langugae is To screen in the browser
7. Go to Reports
8. Click on Catalogy
9. Check output language is To screen in the browser
10. Go to Reports
11. Click Circulation
12. Check output language is To screen in the browser
13. Go to Reports
14. Click Serials
15. Check output language is To screen in the browser
16. Got to Reports
17. Click Cash register
18. Check output language is To screen in the browser
19. Go to Reports
20. Click Holds
21. Check output language is To screen in the browser
22. Go to Reports
23. Click Patrons with the most checkouts
24. Check output language is To screen in the browser
25. Go to Reports
26. Click Most-circulated items
27. Check output language is To screen in the browser
28. Go to Report
29. Click Patrons who haven't checked out
30. Check output language is To screen in the browser

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:27 -06:00
Owen Leonard eb1e00455e
Bug 40222: Bootstrap popover components not updated for BS5
This patch corrects a couple of templates which include a Bootstrap
popover component, updating the data attributes which were missed during
the BS5 upgrade.

The patch also makes a minor change to CSS in order for the popover
heading to not have unwanted margins.

To test, apply the patch and rebuild the staff interface CSS.

- Perform a catalog search in the staff interface.
- Add one or more items to the cart.
- Open the cart and hover your cursor over the "Items" heading. A
  popover should be triggered with a message about item sorting.
- Go to Administration -> Circulation and Fine rules.
- Edit a rule to add content to the "Note" field.
- Save the rule and then hover your cursor over the "View note" text.
  The note you added should appear in a popover.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Flater <flaterdavid@gmail.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-23 16:36:19 -06:00
Jonathan Druart 1b3868e79c
Bug 40180: Fix Cypress test
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-07-23 09:34:52 +02:00
Jonathan Druart 984edc806c
Bug 40174: Fix codespell
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2025-07-22 09:01:00 +02:00
Baptiste Wojtkowski ff2fda90d4
Bug 40458: add pod coverage to Discharge.pm
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
[EDIT] Replaced borrowers in the ->request POD by borrower
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-21 14:01:34 -06:00
Brian Norris 4883dd2754
Bug 32287: Capitalization - UNIMARC labels for 214$r and $s
This patch changes the capitalisation for the labels displayed in
the OPAC and staff interface for UNIMARC 214$r and $s from capital
case to sentence case, to be consistent with other labels:
- 214$r: Printing and/or publishing information transcribed
         as found in the main source of information
- 214$s: Printing and/or publishing information transcribed
         as found in the colophon

Test plan:
1. Have a look at the patch and confirm the changes look correct.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-21 14:01:34 -06:00
Cath Leone 784c5ac2a1
Bug 32284: Fix capitalization for UNIMARC value builders
This patch changes the capitalization for the labels displayed
in the MARC tag editor for UNIMARC subfields 181$a, 181$c,
$182$a, 182$c, and 183$c, when the value builders are used. The
labels are changed from capital case to sentence case, for
consistency with other labels:
- Content Form -> Content form (181$a)
- Content Type -> Content type (181$c)
- Media Type Code -> Media type code (182$a)
- Media Type -> Media type (182$c)
- In the dropdown list (183$a):
  . Audio Carriers -> Audio carriers
  . Computer Carriers -> Computer carriers
  . Microform Carriers -> Microform carriers
  . Microscopic Carriers -> Microscopic carriers
  . Stereographic Carriers -> Stereographic carriers

Test plan:
1. In your KTD shell navigate to
koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder
2. Run "git grep Audio Carriers" you should get results
3. Run "git grep Computer Carriers" you should get results
4. Run "git grep Content Form" you should get results
5. Run "git grep Content Type" you should get results
6. Run "git grep Media Type" you should get results
7. Run "git grep Media Type Code" you should get results
8. Run "git grep Microform Carriers" you should get results
9. Run "git grep Microscopic Carriers" you should get results
10. Apply the patch
11. Repeat steps 2-9 you should not get results

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-21 14:01:33 -06:00
Toni Gardiner 93824068bf
Bug 32296: Capitalization - UNIMARC labels for 181$b value builder
This patch changes the capitalisation for the labels displayed in
the MARC editor for UNIMARC 181$b, when the value builder
unimarc_field_181b.pl is used. The labels are changed from capital
case to sentence case, to be consistent with other labels:
- Specification of type (position 0)
- Specification of motion (position 1)
- Specification of dimensionality (position 2)
- Sensory specification 1, 2 and 3 (positions 3 to 5)

Test plan:
1. Check the capitalisation in the patch.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-21 14:01:33 -06:00
Jonathan Druart b696642df7
Bug 18772: Remove warnings from t/ImportBatch.t
Use of uninitialized value in concatenation (.) or string at /usr/local/share/perl/5.20.2/MARC/File/XML.pm line 399, <__ANONIO__> chunk 1.

Those are 2 warnings coming from MARC::File::XML when called with
invalid XML.
We should not use Test::Warn as they are not expected and that may be
fixed upstream.

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>
2025-07-21 14:01:32 -06:00
Jonathan Druart 03cf21fd92
Bug 40407: Remove legacy "pre-wrap" versions
From https://css-tricks.com/snippets/css/make-pre-text-wrap/

/* Browser specific (not valid) styles to make preformatted text wrap */

pre {
 white-space: pre-wrap;       /* css-3 */
 white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
 white-space: -pre-wrap;      /* Opera 4-6 */
 white-space: -o-pre-wrap;    /* Opera 7 */
 word-wrap: break-word;       /* Internet Explorer 5.5+ */
}

... I think it's now safe to remove the backward compatibility versions and simply keep pre-wrap.

Test plan (from bug 921)0:
  * place a hold on a title with a very very long title or author
  * mark it as "waiting for pickup" by doing a checkin
  * go to command line interface, and run
  * misc/cronjobs/gather_print_notices.pl /tmp
  * misc/cronjobs/printoverdues.sh /tmp
  * if your title/author is long enough, it's splitted on 2 lines
    with this patch (it is not before this patch)

It will also remove the warnings from t/db_dependent/Patron/Borrower_Discharge.t
WARNING: Ignored `white-space: -moz-pre-wrap` at 6:14, invalid value.
WARNING: Ignored `white-space: -o-pre-wrap` at 7:14, invalid value.
WARNING: Ignored `word-wrap: break-work` at 8:14, invalid value.

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>
2025-07-21 14:01:32 -06:00
Martin Renvoize 097ffd0af9
Bug 40401: (follow-up) Fix grammar and rollback in tests
- Fixed grammar: "Returns true if the patron is the anonymous patron"
- Fixed test cleanup: use txn_rollback instead of txn_begin
- Fixed test subroutine closure syntax

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-21 14:01:31 -06:00
Jonathan Druart e49602a87e
Bug 40401: Implement Koha::Patron->is_anonymous
The first motivation of this patch is to remove the following warnings
from t/db_dependent/Auth.t:
Use of uninitialized value $anonymous_patron in string eq at /kohadevbox/koha/C4/Auth.pm line 1497

Actually a correct fix seems to add a new `is_anonymous` method to
Koha::Patron in order to remove the warnings from everywhere else.

Test plan:
Confirm that you cannot log in using the anonymous patron and that the 2
tests are passing
  prove t/db_dependent/Auth.t t/db_dependent/Koha/Patron.t

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>
2025-07-21 14:01:31 -06:00
Jonathan Druart 298884805a
Bug 40379: Remove warnings from t/db_dependent/www
XMLin complains because there are several nodes with the same name
attribute. Not sure what is correct or not, but we actually cannot use
the admin/DBMS user to login to the Koha interface.

We use KOHA_USER env var or default to 'koha'.

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>
2025-07-21 14:01:30 -06:00
Martin Renvoize d9122cd5ac
Bug 40447: Add comprehensive JSDoc documentation to Cypress plugins
This patch adds detailed JSDoc documentation to all Cypress testing
plugin files.

Documentation added to:
- insertData.js: Data insertion utilities with examples
- api-client.js: API wrapper functions with usage patterns
- mockData.js: Schema-based mock data generation
- auth.js: Authentication helper functions
- db.js: Database query utilities
- readYamlFile.js: YAML file reading utilities
- index.js: Main plugin configuration

Each function now includes:
- Complete parameter descriptions with types
- Return value documentation
- Practical usage examples
- Error conditions and handling
- Module-level overviews

This addresses the documentation gap identified during QA review,
hopefully making it easier for future devs to adopt the new framework of
tools.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-07-21 14:01:30 -06:00
Jonathan Druart 3f6a2cb872
Bug 40318: Add tests
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>
2025-07-21 14:01:29 -06:00
Jonathan Druart 20439c9e97
Bug 40318: (bug 40067 follow-up) Prevent receive shipments opening in a new tab - vendor list view
1. Acquisitions > Search vendors > Search
2. In the actions column, click "Receive shipments"
=> Without this patch the receive shipment from vendor [name] page opens in a new tab/window
=> With this patch applied it does not

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>
2025-07-21 14:01:29 -06:00
Jonathan Druart 250580016d
Bug 40430: Fix Toolbar_spec.ts
See comment 1 on the bug.

We are adding the capability to insert vendors and baskets.

Test plan:
Confirm that
  yarn cypress run t/cypress/integration/Toolbar_spec.ts
pass, even if you do not have any vendors in DB.

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>
2025-07-21 14:01:28 -06:00
Jonathan Druart 410497a4f0
Bug 40433: Add missing maxLength to item, library and patron
The test added in xt/api.t was not fully accurate, we skipped the
columns that have the same name as the api attribute (ie. the ones not
part of to_api_mapping)

Test plan:
prove xt/api.t should pass

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>
2025-07-21 14:01:28 -06:00
Jonathan Druart 022cbe9e67
Bug 40345: Use then to prevent async issues
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>
2025-07-21 14:01:27 -06:00
Jonathan Druart 56fb5dc52f
Bug 40345: Properly cleanup old checkouts
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>
2025-07-21 14:01:27 -06:00
Jonathan Druart 6a913fcc8a
Bug 40345: Add tests for bug 38102
Test plan:
  yarn cypress run --spec t/cypress/integration/KohaTable/OPACCirculationHistory_spec.ts
must return green

Revert commits from bug 38102
Run again the Cypress tests
=> They fail

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>
2025-07-21 14:01:26 -06:00
Jonathan Druart ed2c56ee6e
Bug 40345: Force checkout
Pass the confirmation token to force the checkout

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>
2025-07-21 14:01:26 -06:00
Jonathan Druart 959b7e8f05
Bug 40345: Add insertSamplePatron
So it's easier to build and insert a new patron

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>
2025-07-21 14:01:25 -06:00
Jonathan Druart 96bb7116b0
Bug 40345: Pass a patron to insertSampleCheckout
So we won't generate a new patron per checkout

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>
2025-07-21 14:01:25 -06:00
Jonathan Druart a88c1b5445
Bug 40301: (bug 40299 follow-up) Add Cypress tests
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>
2025-07-21 14:01:24 -06:00
Jonathan Druart 19843bd9ba
Bug 40301: Add insertSampleCheckout
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>
2025-07-21 14:01:24 -06:00
Jonathan Druart 34e4b19ff5
Bug 40181: Make sure data won't be added by insertData
We are here testing that data inserted by insertData tasks can be
easily removed from the DB using deleteSampleObjects

Test plan:
Cypress test t/cypress/integration/t/insertData.ts must pass

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>
2025-07-21 14:01:23 -06:00