Bug 35904: Make C4::Auth::checkauth testable easily
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 25 Jan 2024 09:35:41 +0000 (10:35 +0100)
committerFridolin Somers <fridolin.somers@biblibre.com>
Mon, 19 Feb 2024 13:41:11 +0000 (14:41 +0100)
commiteda304c2b8e18c063daf92f22abeb99a992e0faa
treec679c50efe353f84d4ca2d0737d24844b1dfa393
parente948906c83e7ab649337b4048064c52adf99b767
Bug 35904: Make C4::Auth::checkauth testable easily

This patch suggests to add a new flag do_not_print to
C4::Auth::checkauth to not print the headers and allow to test this
subroutine more easily.

We do no longer need to mock safe_exit and redirect STDOUT to test its
return values.

There are still 3 left:
1.
733         # checkauth will redirect and safe_exit if not authenticated and not authorized
=> Better to keep this one, not trivial to replace

2.
806         # This will fail on permissions
This should be replaced but testing $template->{VARS}->{nopermission}
fails, I dont' think the comment is better.

3.
828         # Patron does not have the borrowers permission
Same as 2.

2. and 3. should be investigated a bit more.

This patch also move duplicated code to set patron's password to a
subroutine set_weak_password.

Test plan:
Read the code and confirm that everything makes sense.
QA: Do you have a better way for this? Yes it's dirty!

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit db173d3276455a43939dca68ccc6502839fa2a55)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
C4/Auth.pm
t/db_dependent/Auth.t