All files / nothis fixthis.js

100% Statements 11/11
100% Branches 2/2
100% Functions 3/3
100% Lines 10/10

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 163x 3x 3x   3x 100x 100x     3x 110x   11x   3x  
const clone = require('lodash.clone')
const isFunction = require('./utils/isFunction')
const getAllkeys = require('./utils/getAllKeys')
 
const selfBind = (obj, key) => {
  obj[key] = obj[key].bind(obj)
  return obj
}
 
const selfBindReducer = (acc, key) =>
  isFunction(acc[key]) ? selfBind(acc, key) : acc
 
const fixthis = obj => getAllkeys(obj).reduce(selfBindReducer, clone(obj))
 
module.exports = fixthis