--- /dev/null
+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
+}