1 var test = require('tape')
3 var Result = require('./index.js')
5 test('can create Ok', function t(assert) {
8 assert.equal(!!v, true)
14 test('can check for Ok', function t(assert) {
15 var result = Result.Ok(42)
17 assert.equal(Result.isOk(result), true)
18 assert.equal(Result.Ok(result), 42)
23 test('check for Ok fails for Err', function t(assert) {
24 var result = Result.Err(new Error('foo'))
26 assert.equal(Result.isOk(result), false)
27 assert.equal(Result.Ok(result), undefined)
32 test('can create Err', function t(assert) {
33 var err = Result.Err(new Error('foo'))
35 assert.equal(!!err, true)
36 assert.equal(err.err.message, 'foo')
41 test('can check for Err', function t(assert) {
42 var result = Result.Err(new Error('foo'))
44 assert.equal(Result.isErr(result), true)
45 assert.equal(Result.Err(result).message, 'foo')
50 test('check for Err fails for Ok', function t(assert) {
51 var result = Result.Ok(42)
53 assert.equal(Result.isErr(result), false)
54 assert.equal(Result.Err(result), undefined)
59 test('Ok can support null value', function t(assert) {
60 var result = Result.Ok(null)
62 assert.equal(!!result, true)
63 assert.equal(result.v, null)
65 assert.equal(Result.isOk(result), true)
66 assert.equal(Result.Ok(result), null)
68 assert.equal(Result.isErr(result), false)
69 assert.equal(Result.Err(result), undefined)
74 test('Ok throws if you box undefined', function t(assert) {
75 assert.throws(function () {
77 }, /Cannot box `undefined` in Result.Ok/)
82 test('Err throws if you box non-error', function t(assert) {
83 assert.throws(function () {
85 }, /Cannot box a non-error in Result.Err/)