https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=40134
--- Comment #20 from Martin Renvoize (ashimema) <[email protected]> --- Created attachment 191955 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=191955&action=edit Bug 40134: Add unit tests for optimal item selection 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 <[email protected]> -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list [email protected] https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
