Bug 33782 - OAuth2/OIDC identity providers code is not covered by unit tests
Summary: OAuth2/OIDC identity providers code is not covered by unit tests
Status: Needs Signoff
Alias: None
Product: Koha
Classification: Unclassified
Component: Authentication (show other bugs)
Version: Main
Hardware: All All
: P5 - low normal
Assignee: Tomás Cohen Arazi (tcohen)
QA Contact: Testopia
URL:
Keywords:
Depends on: 33675
Blocks:
  Show dependency treegraph
 
Reported: 2023-05-19 10:30 UTC by Nick Clemens (kidclamp)
Modified: 2025-09-20 14:33 UTC (History)
3 users (show)

See Also:
GIT URL:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:


Attachments
Bug 33782: Add unit tests for Koha::Auth::Client::OAuth (8.73 KB, patch)
2025-09-20 14:32 UTC, Tomás Cohen Arazi (tcohen)
Details | Diff | Splinter Review
Bug 33782: (follow-up) Remove code duplication in OAuth client (2.79 KB, patch)
2025-09-20 14:32 UTC, Tomás Cohen Arazi (tcohen)
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Clemens (kidclamp) 2023-05-19 10:30:30 UTC
We need to provide tests for this code. It will require mocking, or using the Mojo mocking, but should be done before we add more in this area.
Comment 1 Tomás Cohen Arazi (tcohen) 2025-09-20 14:32:48 UTC
Created attachment 186630 [details] [review]
Bug 33782: Add unit tests for Koha::Auth::Client::OAuth

This patch adds comprehensive unit tests for the OAuth authentication
client, specifically covering the _get_data_and_patron method which
handles JWT token processing and UserInfo endpoint integration.

Test plan:
1. Apply patch
2. Run:
   $ ktd --shell
  k$ prove t/db_dependent/Koha/Auth/Client/OAuth.t
=> SUCCESS: Tests pass!
3. Tests cover:
   - JWT id_token processing and patron matching
   - UserInfo endpoint calls and data merging
   - Non-existent user scenarios
   - Combined JWT + UserInfo data sources
4. Sign off :-D

status: Needs Signoff
Comment 2 Tomás Cohen Arazi (tcohen) 2025-09-20 14:32:51 UTC
Created attachment 186631 [details] [review]
Bug 33782: (follow-up) Remove code duplication in OAuth client

This patch eliminates duplicated patron search logic in the
_get_data_and_patron method by extracting it into a dedicated
helper method _find_patron_by_matchpoint.

Changes:
- Extract duplicated patron search logic (8 lines removed)
- Add _find_patron_by_matchpoint helper method
- Improve code maintainability and readability
- No functional changes - behavior preserved

Test plan:
1. Apply patch
2. Run:
   $ ktd --shell
  k$ prove t/db_dependent/Koha/Auth/Client/OAuth.t
=> SUCCESS: Tests pass! OAuth client tests work correctly
  k$ prove t/db_dependent/api/v1/oauth.t
=> SUCCESS: Tests pass! OAuth API integration works
3. Confirm OAuth authentication still works in browser
4. Sign off :-D