code: function checkAllUpdates (options) {
    options = options || {}
    var moduleName = options.names
    var checkLatestOnly = !!options.latest
    var checkCommand = options.testCommand
    if (checkCommand) {
      verify.unemptyString(checkCommand, 'invalid test command ' + checkCommand)
    }
    var all = options.all
    if (all) {
      checkLatestOnly = true
      console.log('will check only latest versions because testing all')
    }
  
    if (check.string(options.without)) {
      options.without = [options.without]
    }
  
    if (check.string(moduleName)) {
      moduleName = [moduleName]
    }
    checkLatestOnly = !!checkLatestOnly
    if (checkCommand) {
      check.verify.string(checkCommand, 'expected string test command')
    }
    var toCheck = getDependenciesToCheck(options, moduleName)
    check.verify.array(toCheck, 'dependencies to check should be an array')
  
    makeSureValidModule(moduleName, toCheck)
  
    var testVersionsBound = testVersions.bind(null, {
      modules: toCheck,
      command: checkCommand,
      all: all,
      color: options.color,
      keep: options.keep,
      allowed: options.allow || options.allowed,
      tldr: options.tldr,
      type: options.type,
      limit: options.limit
    })
  
    return isOnline()
          .then(function (online) {
            if (!online) {
              throw new Error('Need to be online to check new modules')
            }
          }).then(function () {
            if (isSingleSpecificVersion(moduleName)) {
              var nv = nameVersionParser(moduleName[0])
              console.log('checking only specific:', nv.name, nv.version)
              var list = [{
                name: nv.name,
                versions: [nv.version]
              }]
              return testVersionsBound(list)
            } else {
              var nextVersionsPromise = nextVersions(options, toCheck, checkLatestOnly)
              return nextVersionsPromise.then(testVersionsBound)
            }
          })
  }
docs: returns promise