]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/realize-package-specifier/test/basic.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / realize-package-specifier / test / basic.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/realize-package-specifier/test/basic.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/realize-package-specifier/test/basic.js
new file mode 100644 (file)
index 0000000..7fe659f
--- /dev/null
@@ -0,0 +1,143 @@
+"use strict"
+var test = require("tap").test
+var requireInject = require("require-inject")
+var path = require("path")
+
+var re = {
+  tarball: /[/\\]a.tar.gz$/,
+  packagedir: /[/\\]b$/,
+  packagejson: /[/\\]b[/\\]package.json$/,
+  nonpackagedir: /[/\\]c$/,
+  nopackagejson: /[/\\]c[/\\]package.json$/,
+  remotename: /[/\\]d$/,
+  packagedirlikegithub: /[/\\]e[/\\]1$/,
+  packagejsonlikegithub: /[/\\]e[/\\]1[/\\]package.json$/,
+  github: /[/\\]e[/\\]2$/,
+  localrangefile: /[/\\]1[.]0[.]0$/,
+  localverfile: /[/\\]1$/
+}
+
+var rps = requireInject("../index", {
+  "fs": {
+    "stat": function (path, callback) {
+      if (re.tarball.test(path)) {
+        callback(null,{isDirectory:function(){ return false }})
+      }
+      else if (re.packagedir.test(path)) {
+        callback(null,{isDirectory:function(){ return true }})
+      }
+      else if (re.packagejson.test(path)) {
+        callback(null,{})
+      }
+      else if (re.nonpackagedir.test(path)) {
+        callback(null,{isDirectory:function(){ return true }})
+      }
+      else if (re.nopackagejson.test(path)) {
+        callback(new Error("EFILENOTFOUND"))
+      }
+      else if (re.remotename.test(path)) {
+        callback(new Error("EFILENOTFOUND"))
+      }
+      else if (re.packagedirlikegithub.test(path)) {
+        callback(null,{isDirectory:function(){ return true }})
+      }
+      else if (re.packagejsonlikegithub.test(path)) {
+        callback(null,{})
+      }
+      else if (re.github.test(path)) {
+        callback(new Error("EFILENOTFOUND"))
+      }
+      else if (re.localverfile.test(path)) {
+        callback(null,{isDirectory:function(){ return false }})
+      }
+      else if (re.localrangefile.test(path)) {
+        callback(null,{isDirectory:function(){ return false }})
+      }
+      else {
+        throw new Error("Unknown stat fixture path: "+path)
+      }
+    }
+  }
+})
+
+test("realize-package-specifier", function (t) {
+  t.plan(13)
+  rps("a.tar.gz", function (err, result) {
+    t.is(result.type, "local", "local tarball")
+  })
+  rps("b", function (err, result) {
+    t.is(result.type, "directory", "local package directory")
+  })
+  rps("c", function (err, result) {
+    t.is(result.type, "range", "remote package, non-package local directory")
+  })
+  rps("d", function (err, result) {
+    t.is(result.type, "range", "remote package, no local directory")
+  })
+  rps("file:./a.tar.gz", function (err, result) {
+    t.is(result.type, "local", "local tarball")
+  })
+  rps("file:./b", function (err, result) {
+    t.is(result.type, "directory", "local package directory")
+  })
+  rps("file:./c", function (err, result) {
+    t.is(result.type, "local", "non-package local directory, specified with a file URL")
+  })
+  rps("file:./d", function (err, result) {
+    t.is(result.type, "local", "no local directory, specified with a file URL")
+  })
+  rps("e/1", function (err, result) {
+    t.is(result.type, "directory", "local package directory")
+  })
+  rps("e/2", function (err, result) {
+    t.is(result.type, "hosted", "hosted package dependency")
+    t.is(result.hosted.type, "github", "github package dependency")
+  })
+  rps("1", function (err, result) {
+    t.is(result.type, "local", "range like local file is still a local file")
+  })
+  rps("1.0.0", function (err, result) {
+    t.is(result.type, "local", "version like local file is still a local file")
+  })
+})
+test("named realize-package-specifier", function (t) {
+  t.plan(13)
+
+  rps("a@a.tar.gz", function (err, result) {
+    t.is(result.type, "local", "named local tarball")
+  })
+  rps("b@b", function (err, result) {
+    t.is(result.type, "directory", "named local package directory")
+  })
+  rps("c@c", function (err, result) {
+    t.is(result.type, "tag", "remote package, non-package local directory")
+  })
+  rps("d@d", function (err, result) {
+    t.is(result.type, "tag", "remote package, no local directory")
+  })
+  rps("a@file:./a.tar.gz", function (err, result) {
+    t.is(result.type, "local", "local tarball")
+  })
+  rps("b@file:./b", function (err, result) {
+    t.is(result.type, "directory", "local package directory")
+  })
+  rps("c@file:./c", function (err, result) {
+    t.is(result.type, "local", "non-package local directory, specified with a file URL")
+  })
+  rps("d@file:./d", function (err, result) {
+    t.is(result.type, "local", "no local directory, specified with a file URL")
+  })
+  rps("e@e/1", function (err, result) {
+    t.is(result.type, "directory", "local package directory")
+  })
+  rps("e@e/2", function (err, result) {
+    t.is(result.type, "hosted", "hosted package dependency")
+    t.is(result.hosted.type, "github", "github package dependency")
+  })
+  rps("e@1", function (err, result) {
+    t.is(result.type, "range", "range like specifier is never a local file")
+  })
+  rps("e@1.0.0", function (err, result) {
+    t.is(result.type, "version", "version like specifier is never a local file")
+  })
+})