--- /dev/null
+var test = require('tap').test
+var spinner = require('../spin.js')
+
+test('does nothing when not a tty', function(t) {
+ var int = spinner({
+ stream: { write: function(c) {
+ throw new Error('wrote something: ' + JSON.stringify(c))
+ }, isTTY: false },
+ })
+ t.notOk(int)
+ t.end()
+})
+
+test('write spinny stuff', function(t) {
+ var output = ''
+ var written = 0
+ var expect = "b\u001b[0Gc\u001b[0Gd\u001b[0Ge\u001b[0Gf\u001b[0Gg\u001b[0Gh\u001b[0Gi\u001b[0Gj\u001b[0Gk\u001b[0Gl\u001b[0Gm\u001b[0Gn\u001b[0Go\u001b[0Gp\u001b[0Ga\u001b[0Gb\u001b[0Gc\u001b[0Gd\u001b[0Ge\u001b[0Gf\u001b[0Gg\u001b[0Gh\u001b[0Gi\u001b[0Gj\u001b[0Gk\u001b[0Gl\u001b[0Gm\u001b[0Gn\u001b[0Go\u001b[0Gp\u001b[0Ga\u001b[0Gb\u001b[0Gc\u001b[0Gd\u001b[0Ge\u001b[0Gf\u001b[0Gg\u001b[0Gh\u001b[0Gi\u001b[0Gj\u001b[0Gk\u001b[0Gl\u001b[0Gm\u001b[0Gn\u001b[0Go\u001b[0Gp\u001b[0Ga\u001b[0Gb\u001b[0Gc\u001b[0G"
+
+ var int = spinner({
+ interval: 0,
+ string: 'abcdefghijklmnop',
+ stream: {
+ write: function(c) {
+ output += c
+ if (++written == 50) {
+ t.equal(output, expect)
+ clearInterval(int)
+ t.end()
+ }
+ },
+ isTTY: true
+ },
+ cleanup: false
+ })
+})