Version 1
[yaffs-website] / node_modules / rust-result / test.js
diff --git a/node_modules/rust-result/test.js b/node_modules/rust-result/test.js
new file mode 100644 (file)
index 0000000..d9fab15
--- /dev/null
@@ -0,0 +1,88 @@
+var test = require('tape')
+
+var Result = require('./index.js')
+
+test('can create Ok', function t(assert) {
+  var v = Result.Ok(42)
+
+  assert.equal(!!v, true)
+  assert.equal(v.v, 42)
+
+  assert.end()
+})
+
+test('can check for Ok', function t(assert) {
+  var result = Result.Ok(42)
+
+  assert.equal(Result.isOk(result), true)
+  assert.equal(Result.Ok(result), 42)
+
+  assert.end()
+})
+
+test('check for Ok fails for Err', function t(assert) {
+  var result = Result.Err(new Error('foo'))
+
+  assert.equal(Result.isOk(result), false)
+  assert.equal(Result.Ok(result), undefined)
+
+  assert.end()
+})
+
+test('can create Err', function t(assert) {
+  var err = Result.Err(new Error('foo'))
+
+  assert.equal(!!err, true)
+  assert.equal(err.err.message, 'foo')
+
+  assert.end()
+})
+
+test('can check for Err', function t(assert) {
+  var result = Result.Err(new Error('foo'))
+
+  assert.equal(Result.isErr(result), true)
+  assert.equal(Result.Err(result).message, 'foo')
+
+  assert.end()
+})
+
+test('check for Err fails for Ok', function t(assert) {
+  var result = Result.Ok(42)
+
+  assert.equal(Result.isErr(result), false)
+  assert.equal(Result.Err(result), undefined)
+
+  assert.end()
+})
+
+test('Ok can support null value', function t(assert) {
+  var result = Result.Ok(null)
+
+  assert.equal(!!result, true)
+  assert.equal(result.v, null)
+
+  assert.equal(Result.isOk(result), true)
+  assert.equal(Result.Ok(result), null)
+
+  assert.equal(Result.isErr(result), false)
+  assert.equal(Result.Err(result), undefined)
+
+  assert.end()
+})
+
+test('Ok throws if you box undefined', function t(assert) {
+  assert.throws(function () {
+    Result.Ok(undefined)
+  }, /Cannot box `undefined` in Result.Ok/)
+
+  assert.end()
+})
+
+test('Err throws if you box non-error', function t(assert) {
+  assert.throws(function () {
+    Result.Err(42)
+  }, /Cannot box a non-error in Result.Err/)
+
+  assert.end()
+})