|  | var readInstalled = require("../read-installed.js") | 
|  | var json = require("../package.json") | 
|  | var d = Object.keys(json.dependencies) | 
|  | var dd = Object.keys(json.devDependencies) | 
|  | var od = Object.keys(json.optionalDependencies) | 
|  | var known = d.concat(dd).concat(od).sort() | 
|  | var test = require("tap").test | 
|  | var path = require("path") | 
|  |  | 
|  | test("make sure that it works", function (t) { | 
|  | readInstalled(path.join(__dirname, "../"), { | 
|  | dev: true, | 
|  | log: console.error | 
|  | }, function (er, map) { | 
|  | t.notOk(er, "er should be bull") | 
|  | t.ok(map, "map should be data") | 
|  | if (er) return console.error(er.stack || er.message) | 
|  | cleanup(map) | 
|  | var deps = Object.keys(map.dependencies).sort() | 
|  | t.equal(known.length, deps.length, "array lengths are equal") | 
|  | t.deepEqual(known, deps, "arrays should be equal") | 
|  | t.notOk(map.dependencies.tap.extraneous, 'extraneous not set on devDep') | 
|  | t.end() | 
|  | }) | 
|  | }) | 
|  |  | 
|  | var seen = [] | 
|  | function cleanup (map) { | 
|  | if (seen.indexOf(map) !== -1) return | 
|  | seen.push(map) | 
|  | for (var i in map) switch (i) { | 
|  | case "_id": | 
|  | case "path": | 
|  | case "extraneous": case "invalid": | 
|  | case "dependencies": case "name": | 
|  | continue | 
|  | default: delete map[i] | 
|  | } | 
|  | var dep = map.dependencies | 
|  | if (dep) { | 
|  | for (var i in dep) if (typeof dep[i] === "object") { | 
|  | cleanup(dep[i]) | 
|  | } | 
|  | } | 
|  | return map | 
|  | } |