All files / node-user-accounts-boilerplate-nahid/fields password.js

100% Statements 13/13
100% Branches 8/8
100% Functions 1/1
100% Lines 13/13

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    5x 5x 5x 5x   5x   1x 1x     4x   2x     2x   1x     1x   1x    
"use strict";
 
module.exports.order = 50;
module.exports.type = 'string';
module.exports.mask = true;
module.exports.assign = async function (user, field, value, fieldMeta, loginUser, config)
{
  if (typeof value === 'boolean' || value === '')
  {
    delete user[field];
    return
  }
 
  if (typeof value !== this.type)
  {
    throw new Error(`${field} value is not ${this.type}`);
  }
 
  if (!config.crypt)
  {
    throw new Error('A crypt is not configured');
  }
 
  const hash = await config.crypt.hash(value);
 
  user[field] = hash;
};