]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/sorted-package-json.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / sorted-package-json.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/sorted-package-json.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/sorted-package-json.js
new file mode 100644 (file)
index 0000000..726b56f
--- /dev/null
@@ -0,0 +1,95 @@
+var test = require("tap").test
+  , path = require("path")
+  , rimraf = require("rimraf")
+  , mkdirp = require("mkdirp")
+  , spawn = require("child_process").spawn
+  , npm = require.resolve("../../bin/npm-cli.js")
+  , node = process.execPath
+  , pkg = path.resolve(__dirname, "sorted-package-json")
+  , tmp = path.join(pkg, "tmp")
+  , cache = path.join(pkg, "cache")
+  , fs = require("fs")
+  , common = require("../common-tap.js")
+  , mr = require("npm-registry-mock")
+  , osenv = require("osenv")
+
+
+test("sorting dependencies", function (t) {
+  var packageJson = path.resolve(pkg, "package.json")
+
+  cleanup()
+  mkdirp.sync(cache)
+  mkdirp.sync(tmp)
+  setup()
+
+  var before = JSON.parse(fs.readFileSync(packageJson).toString())
+
+  mr({port : common.port}, function (er, s) {
+    // underscore is already in the package.json,
+    // but --save will trigger a rewrite with sort
+    var child = spawn(node, [npm, "install", "--save", "underscore@1.3.3", "--no-progress", "--loglevel=error"], {
+      cwd: pkg,
+      env: {
+        "npm_config_registry": common.registry,
+        "npm_config_cache": cache,
+        "npm_config_tmp": tmp,
+        "npm_config_prefix": pkg,
+        "npm_config_global": "false",
+        HOME: process.env.HOME,
+        Path: process.env.PATH,
+        PATH: process.env.PATH
+      },
+      stdio: ['ignore', 'ignore', process.stderr]
+    })
+
+    child.on("close", function (code) {
+      t.equal(code, 0, "npm install exited with code")
+      var result = fs.readFileSync(packageJson).toString()
+        , resultAsJson = JSON.parse(result)
+
+      s.close()
+
+      t.same(Object.keys(resultAsJson.dependencies),
+        Object.keys(before.dependencies).sort())
+
+      t.notSame(Object.keys(resultAsJson.dependencies),
+        Object.keys(before.dependencies))
+
+      t.ok(resultAsJson.dependencies.underscore)
+      t.ok(resultAsJson.dependencies.request)
+      t.end()
+    })
+  })
+})
+
+test("cleanup", function (t) {
+  cleanup()
+  t.pass("cleaned up")
+  t.end()
+})
+
+function setup() {
+  mkdirp.sync(pkg)
+
+  fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({
+    "name": "sorted-package-json",
+    "version": "0.0.0",
+    "description": "",
+    "main": "index.js",
+    "scripts": {
+      "test": "echo \"Error: no test specified\" && exit 1"
+    },
+    "author": "Rocko Artischocko",
+    "license": "ISC",
+    "dependencies": {
+      "underscore": "^1.3.3",
+      "request": "^0.9.0"
+    }
+  }, null, 2), "utf8")
+}
+
+function cleanup() {
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(cache)
+  rimraf.sync(pkg)
+}