All files / react-oidc/src/utils userManager.ts

77.27% Statements 17/22
50% Branches 4/8
54.55% Functions 6/11
89.47% Lines 17/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52                        2x               8x 8x 8x 8x 8x     2x 5x   2x 1x   2x 5x       2x         2x 1x       2x   2x  
import { UserManagerSettings } from 'oidc-client'
 
export interface IOverloads {
  getUserFunction: () => Promise<any>
  signinRedirectCallback: () => Promise<any>
  signinRedirectFunction: () => void
  signoutRedirectFunction: () => void
  signinSilent?: () => void
}
export interface IMockUserManagerOptions
  extends UserManagerSettings,
    IOverloads {}
class UserManager implements IOverloads {
  getUserFunction: () => Promise<any>
  signinRedirectCallbackFunction: () => Promise<any>
  signinRedirectFunction: () => void
  signoutRedirectFunction: () => void
  signinSilent?: () => void
 
  constructor(args: IMockUserManagerOptions) {
    this.getUserFunction = args.getUserFunction
    this.signinRedirectFunction = args.signinRedirectFunction
    this.signinRedirectCallbackFunction = args.signinRedirectCallback
    this.signoutRedirectFunction = args.signoutRedirectFunction
    this.signinSilent = args.signinSilent
  }
 
  getUser() {
    return this.getUserFunction() || new Promise(res => res())
  }
  removeUser() {
    this.getUser = () => new Promise(res => res(null))
  }
  signinRedirect(): void {
    return this.signinRedirectFunction
      ? this.signinRedirectFunction()
      : undefined
  }
  signinRedirectCallback() {
    return this.signinRedirectCallbackFunction
      ? this.signinRedirectCallbackFunction()
      : new Promise(res => res())
  }
  signoutRedirect(): void {
    return this.signoutRedirectFunction
      ? this.signoutRedirectFunction()
      : undefined
  }
}
 
export default UserManager as any