Code coverage report for elb/doesLoadBalancerExist.js

Statements: 100% (9 / 9)      Branches: 100% (2 / 2)      Functions: 100% (2 / 2)      Lines: 100% (9 / 9)      Ignored: none     

All files » elb/ » doesLoadBalancerExist.js
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    1 1                       1 1 2 1     1     3               1  
'use strict'
 
var _ = require('lodash')
var Bluebird = require('bluebird')
 
/**
 * Uses the ELB.describeLoadBalancers method to check the existence of a load
 * balancer. If the list of LoadBalancerDescriptions returned by the request
 * is empty, doesLoadBalancerExist is resolved as False, if it's not empty it
 * is resolved as True.
 *
 * @param elb
 * @param loadBalancerName
 * @returns {Promise}
 */
function doesLoadBalancerExist (elb, loadBalancerName) {
  function inspectError (err) {
    if (err.code === 'LoadBalancerNotFound') {
      return false
    }
 
    return Bluebird.reject(err)
  }
 
  return elb
    .describeLoadBalancersPromised({
      LoadBalancerNames: [ loadBalancerName ]
    })
    .then(_.constant(true))
    .error(inspectError)
}
 
module.exports = doesLoadBalancerExist