Skip to content

fix(auth): ensure isTokenExpired returns strict boolean #6002 - #6003

Open
MMilosz wants to merge 1 commit into
DSpace:mainfrom
MMilosz:fix/auth/ensure-istokenexpired-returns-strict-boolean-6002
Open

fix(auth): ensure isTokenExpired returns strict boolean #6002#6003
MMilosz wants to merge 1 commit into
DSpace:mainfrom
MMilosz:fix/auth/ensure-istokenexpired-returns-strict-boolean-6002

Conversation

@MMilosz

@MMilosz MMilosz commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

References

Description

This PR fixes isTokenExpired() to return true for missing tokens (null or undefined), which could potentially reoslve #6002.

Instructions for Reviewers

This PR:

  • adds two test cases for null/undefined token scenarios
  • changes the return clause in isTokenExpired()
// original
public isTokenExpired(token?: AuthTokenInfo): boolean {
  token = token || this.getToken();
  return token && token.expires < Date.now();
}

source

A return value here can be true, false, or null if local storage has no token, or undefined if NgRx store hasn't initialized yet-these cases could cause problems when methods expected a boolean return value.

The fix ensures isTokenExpired() always returns a proper true/false boolean.

To test, please verify if that all unit tests pass and that no token behavior changes occur after logging into a site.

Checklist

  • My PR is created against the main branch of code (unless it is a backport or is fixing an issue specific to an older branch).
  • My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
  • My PR follows all coding best practices based on the Code Conventions Guide
  • My PR passes ESLint validation using npm run lint
  • My PR doesn't introduce circular dependencies (verified via npm run check-circ-deps)
  • My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
  • My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
  • My PR aligns with Accessibility guidelines if it makes changes to the user interface.
  • My PR uses i18n (internationalization) keys instead of hardcoded English text, to allow for translations.
  • My PR includes details on how to test it. I've provided clear instructions to reviewers on how to successfully test this fix or feature.
  • If my PR includes new libraries/dependencies (in package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
  • If my PR includes new features or configurations, I've provided basic technical documentation in the PR itself.
  • If my PR fixes an issue ticket, I've linked them together.

@MMilosz
MMilosz force-pushed the fix/auth/ensure-istokenexpired-returns-strict-boolean-6002 branch from ae8dd55 to e8f3987 Compare July 28, 2026 21:00
@MMilosz
MMilosz marked this pull request as ready for review July 29, 2026 09:58
@lgeggleston lgeggleston added bug 1 APPROVAL pull request only requires a single approval to merge testing framework Related specifically to Unit or Integration (e2e) Tests labels Jul 29, 2026
@lgeggleston lgeggleston moved this to 🙋 Needs Reviewers Assigned in DSpace 11.0 Release Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1 APPROVAL pull request only requires a single approval to merge bug testing framework Related specifically to Unit or Integration (e2e) Tests

Projects

Status: 🙋 Needs Reviewers Assigned

Development

Successfully merging this pull request may close these issues.

2 participants