]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npmlog/node_modules/gauge/test/progress-bar.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / npmlog / node_modules / gauge / test / progress-bar.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npmlog/node_modules/gauge/test/progress-bar.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npmlog/node_modules/gauge/test/progress-bar.js
new file mode 100644 (file)
index 0000000..5d3e7e7
--- /dev/null
@@ -0,0 +1,176 @@
+"use strict"
+var test = require("tap").test
+var ProgressBar = require("../progress-bar.js")
+
+var cursor = []
+var C
+var bar = new ProgressBar({theme: ProgressBar.ascii, maxUpdateFrequency: 0}, C = {
+  show: function () {
+    cursor.push(["show"])
+    return C
+  },
+  hide: function () {
+    cursor.push(["hide"])
+    return C
+  },
+  up: function (lines) {
+    cursor.push(["up",lines])
+    return C
+  },
+  horizontalAbsolute: function (col) {
+    cursor.push(["horizontalAbsolute", col])
+    return C
+  },
+  eraseLine: function () {
+    cursor.push(["eraseLine"])
+    return C
+  },
+  write: function (line) {
+    cursor.push(["write", line])
+    return C
+  }
+})
+
+
+function isOutput(t, msg, output) {
+  var tests = []
+  for (var ii = 0; ii<output.length; ++ii) {
+    for (var jj = 0; jj<output[ii].length; ++jj) {
+      tests.push({cmd: ii, arg: jj})
+    }
+  }
+  tests.forEach(function(test) {
+    t.is(cursor[test.cmd] ? cursor[test.cmd][test.arg] : null,
+         output[test.cmd][test.arg],
+         msg + ": " + output[test.cmd] + (test.arg ? " arg #"+test.arg : ""))
+  })
+}
+
+test("hide", function (t) {
+  t.plan(11)
+  process.stderr.isTTY = false
+  bar.hide()
+  t.is(cursor.length, 0, "We don't progress bar without a tty")
+  cursor = []
+  process.stderr.isTTY = true
+  bar.hide()
+  isOutput(t, "hide while not showing",[
+    ["show"], // cursor
+    ["horizontalAbsolute",0],
+    ["eraseLine"]])
+  cursor = []
+  bar.showing = true
+  bar.hide()
+  isOutput(t, "hide while showing",[
+    ["show"], // cursor
+    ["up", 1],
+    ["horizontalAbsolute",0],
+    ["eraseLine"]])
+})
+
+test("renderTemplate", function (t) {
+  t.plan(16)
+  process.stdout.columns = 11
+  var result = bar.renderTemplate(ProgressBar.ascii,[{type: "name"}],{name: "NAME"})
+  t.is(result, "NAME", "name substitution")
+  var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 0})
+  t.is(result, "----------", "0% bar")
+  var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 0.5})
+  t.is(result, "#####-----", "50% bar")
+  var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 1})
+  t.is(result, "##########", "100% bar")
+  var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: -100})
+  t.is(result, "----------", "0% underflow bar")
+  var result = bar.renderTemplate(ProgressBar.ascii,[{type: "completionbar"}],{completed: 100})
+  t.is(result, "##########", "100% overflow bar")
+  var result = bar.renderTemplate(ProgressBar.ascii,[{type: "name"},{type: "completionbar"}],{name: "NAME", completed: 0.5})
+  t.is(result, "NAME###---", "name + 50%")
+  var result = bar.renderTemplate(ProgressBar.ascii, ["static"], {})
+  t.is(result, "static", "static text")
+  var result = bar.renderTemplate(ProgressBar.ascii, ["static",{type: "name"}], {name: "NAME"})
+  t.is(result, "staticNAME", "static text + var")
+  var result = bar.renderTemplate(ProgressBar.ascii, ["static",{type: "name", separated: true}], {name: "NAME"})
+  t.is(result, "static NAME ", "pre-separated")
+  var result = bar.renderTemplate(ProgressBar.ascii, [{type: "name", separated: true}, "static"], {name: "NAME"})
+  t.is(result, "NAME static", "post-separated")
+  var result = bar.renderTemplate(ProgressBar.ascii, ["1",{type: "name", separated: true}, "2"], {name: ""})
+  t.is(result, "12", "separated no value")
+  var result = bar.renderTemplate(ProgressBar.ascii, ["1",{type: "name", separated: true}, "2"], {name: "NAME"})
+  t.is(result, "1 NAME 2", "separated value")
+  var result = bar.renderTemplate(ProgressBar.ascii, [{type: "spinner"}], {spinner: 0})
+  t.is(result, "", "No spinner")
+  var result = bar.renderTemplate(ProgressBar.ascii, [{type: "spinner"}], {spinner: 1})
+  t.is(result, "\\", "Spinner 1")
+  var result = bar.renderTemplate(ProgressBar.ascii, [{type: "spinner"}], {spinner: 10})
+  t.is(result, "|", "Spinner 10")
+})
+
+test("show & pulse", function (t) {
+  t.plan(23)
+
+  process.stdout.columns = 16
+  cursor = []
+  process.stderr.isTTY = false
+  bar.template[0].length = 6
+  bar.last = new Date(0)
+  bar.show("NAME", 0)
+  t.is(cursor.length, 0, "no tty, no progressbar")
+
+  cursor = []
+  process.stderr.isTTY = true
+  bar.last = new Date(0)
+  bar.show("NAME", 0.1)
+  isOutput(t, "tty, name, completion",
+    [ [ 'hide' ],
+      [ 'horizontalAbsolute', 0 ],
+      [ 'write', 'NAME   |#-----|\n' ],
+      [ 'show' ] ])
+
+  bar.show("S")
+  cursor = []
+  bar.last = new Date(0)
+  bar.pulse()
+  isOutput(t, "pulsed spinner",
+    [ [ 'up', 1 ],
+      [ 'hide' ],
+      [ 'horizontalAbsolute', 0 ],
+      [ 'write', 'S      \\ |----|\n' ],
+      [ 'show' ] ])
+  cursor = []
+  bar.last = new Date(0)
+  bar.pulse("P")
+  isOutput(t, "pulsed spinner with subsection",
+    [ [ 'up', 1 ],
+      [ 'hide' ],
+      [ 'horizontalAbsolute', 0 ],
+      [ 'write', 'S -> P | |----|\n' ],
+      [ 'show' ] ])
+})
+
+test("window resizing", function (t) {
+  t.plan(16)
+  process.stderr.isTTY = true
+  process.stdout.columns = 32
+  bar.show("NAME", 0.1)
+  cursor = []
+  bar.last = new Date(0)
+  bar.pulse()
+  isOutput(t, "32 columns",
+    [ [ 'up', 1 ],
+      [ 'hide' ],
+      [ 'horizontalAbsolute', 0 ],
+      [ 'write', 'NAME   / |##------------------|\n' ],
+      [ 'show' ] ])
+
+  process.stdout.columns = 16
+  bar.show("NAME", 0.5)
+  cursor = []
+  bar.last = new Date(0)
+  bar.pulse()
+  isOutput(t, "16 columns",
+    [ [ 'up', 1 ],
+      [ 'hide' ],
+      [ 'horizontalAbsolute', 0 ],
+      [ 'write', 'NAME   - |##--|\n' ],
+      [ 'show' ] ]);
+});