This patch adds unit tests for the server-side optimal item selection functionality. t/db_dependent/Koha/Booking.t: - Added subtest for _select_optimal_item() method (7 tests) * Tests with no items (returns undef) * Tests with single item (returns that item) * Tests with multiple items (selects item with longest future availability) * Tests optimal selection across items with different booking patterns * Tests handling of cancelled bookings (ignored in selection) * Tests iterator reset after selection - Added subtest for _assign_item_for_booking() with itemtype filtering (6 tests) * Tests booking without item_id or itemtype_id (selects any available) * Tests booking with itemtype_id (filters by type) * Tests optimal selection within filtered itemtype * Tests exception when no items of specified type available - Added integration test for full optimal selection workflow (5 tests) * Creates 3 items with different future booking patterns * Verifies items selected in optimal order (B→C→A) * Demonstrates preservation of constrained resources * Validates complete algorithm chain * Tests booking failure when all items exhausted t/db_dependent/api/v1/bookings.t: - Added subtest for itemtype_id parameter validation (16 tests) * Tests successful booking creation with itemtype_id * Tests that item is automatically assigned * Tests validation: cannot specify both item_id and itemtype_id * Tests validation: must specify either item_id or itemtype_id * Tests clash detection with itemtype-based bookings - Fixed duplicate booking_id test to use different dates * Prevents clash detection from masking duplicate ID constraint - Updated test count from 3 to 8 subtests in Booking.t - Updated test count to match actual assertions (16 not 18) Test Coverage: - Internal method testing: _select_optimal_item() - Integration testing: _assign_item_for_booking() - API endpoint testing: add() with itemtype_id - End-to-end workflow validation - Edge cases: empty sets, single items, ties, cancelled bookings Test plan: 1. prove t/db_dependent/Koha/Booking.t 2. prove t/db_dependent/api/v1/bookings.t 3. Verify all tests pass Signed-off-by: Kristi Krueger <kkrueger@cuyahogalibrary.org> Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com> |
||
|---|---|---|
| .github/workflows | ||
| C4 | ||
| Koha | ||
| acqui | ||
| admin | ||
| api | ||
| authorities | ||
| basket | ||
| bin | ||
| bookings | ||
| catalogue | ||
| cataloguing | ||
| circ | ||
| clubs | ||
| course_reserves | ||
| debian | ||
| docs | ||
| erm | ||
| errors | ||
| etc | ||
| ill | ||
| installer | ||
| koha-tmpl | ||
| labels | ||
| lib | ||
| members | ||
| misc | ||
| offline_circ | ||
| opac | ||
| patron_lists | ||
| patroncards | ||
| plugins | ||
| pos | ||
| preservation | ||
| recalls | ||
| reports | ||
| reserve | ||
| reviews | ||
| rotating_collections | ||
| serials | ||
| services | ||
| sip2 | ||
| skel | ||
| suggestion | ||
| svc | ||
| t | ||
| tags | ||
| tools | ||
| virtualshelves | ||
| xt | ||
| .codespell-ignore | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .htaccess | ||
| .mailmap | ||
| .perlcriticrc | ||
| .perltidyrc | ||
| .prettierrc.js | ||
| .proverc.dist | ||
| .stylelintrc.json | ||
| INSTALL | ||
| Koha.pm | ||
| LICENSE | ||
| MANIFEST.SKIP | ||
| Makefile.PL | ||
| README | ||
| README.md | ||
| README.robots | ||
| SECURITY.md | ||
| about.pl | ||
| app.psgi | ||
| build-resources.PL | ||
| changelanguage.pl | ||
| cpanfile | ||
| cypress.config.ts | ||
| eslint.config.mjs | ||
| fix-perl-path.PL | ||
| gulpfile.js | ||
| help.pl | ||
| kohaversion.pl | ||
| mainpage.pl | ||
| package.json | ||
| rewrite-config.PL | ||
| rspack.config.js | ||
| tsconfig.json | ||
| yarn.lock | ||
README.md
Koha is a free software integrated library system (ILS).
Koha is distributed under the GNU GPL version 3 or later.
Note: Koha does not accept pull requests from git hosting sites.
Note: This project has its own bug tracker, to report a bug or submit a patch visit https://bugs.koha-community.org.
For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch
The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook
