All files / app/identity/validators/passwords util.ts

100% Statements 7/7
100% Branches 4/4
100% Functions 1/1
100% Lines 7/7

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            1x 122x     122x 80x     42x 1x     41x    
import type { AbstractControl } from '@angular/forms';
 
/**
 * Safely extract the value from a control, expecting it to be a string or nullish.
 * @throws TypeError - Control value is not nullish and not a string.
 */
export const getPasswordControlValue = (control: AbstractControl<unknown>): string | null => {
  const { value } = control;
 
  // Like Validators.email, rely on Validators.required to check for blank passwords.
  if (value == undefined || value === '') {
    return null; // eslint-disable-line unicorn/no-null -- ValidatorFn returns null
  }
 
  if (typeof value !== 'string') {
    throw new TypeError(`Invalid Control Value Type: '${typeof value}'`);
  }
 
  return value;
};