1 | var readInstalled = require("../read-installed.js")
|
2 | var json = require("../package.json")
|
3 | var d = Object.keys(json.dependencies)
|
4 | var dd = Object.keys(json.devDependencies)
|
5 | var od = Object.keys(json.optionalDependencies)
|
6 | var known = d.concat(dd).concat(od).sort()
|
7 | var test = require("tap").test
|
8 | var path = require("path")
|
9 |
|
10 | test("make sure that it works", function (t) {
|
11 | readInstalled(path.join(__dirname, "../"), {
|
12 | dev: true,
|
13 | log: console.error
|
14 | }, function (er, map) {
|
15 | t.notOk(er, "er should be bull")
|
16 | t.ok(map, "map should be data")
|
17 | if (er) return console.error(er.stack || er.message)
|
18 | cleanup(map)
|
19 | var deps = Object.keys(map.dependencies).sort()
|
20 | t.equal(known.length, deps.length, "array lengths are equal")
|
21 | t.deepEqual(known, deps, "arrays should be equal")
|
22 | t.notOk(map.dependencies.tap.extraneous, 'extraneous not set on devDep')
|
23 | t.end()
|
24 | })
|
25 | })
|
26 |
|
27 | var seen = []
|
28 | function cleanup (map) {
|
29 | if (seen.indexOf(map) !== -1) return
|
30 | seen.push(map)
|
31 | for (var i in map) switch (i) {
|
32 | case "_id":
|
33 | case "path":
|
34 | case "extraneous": case "invalid":
|
35 | case "dependencies": case "name":
|
36 | continue
|
37 | default: delete map[i]
|
38 | }
|
39 | var dep = map.dependencies
|
40 | if (dep) {
|
41 | for (var i in dep) if (typeof dep[i] === "object") {
|
42 | cleanup(dep[i])
|
43 | }
|
44 | }
|
45 | return map
|
46 | }
|