| 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 | |
| } |