aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/nodeify-test.js
blob: f4fe320ca1ccc876f4386c85936888db09c26675 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const assert = require('assert')
const nodeify = require('../../app/scripts/lib/nodeify')

describe('nodeify', function () {
  var obj = {
    foo: 'bar',
    promiseFunc: function (a) {
      var solution = this.foo + a
      return Promise.resolve(solution)
    },
  }

  it('should retain original context', function (done) {
    var nodified = nodeify(obj.promiseFunc, obj)
    nodified('baz', function (err, res) {
      assert.equal(res, 'barbaz')
      done()
    })
  })

  it('should throw if the last argument is not a function', function (done) {
    var nodified = nodeify(obj.promiseFunc, obj)
    try {
      nodified('baz')
      done(new Error('should have thrown if the last argument is not a function'))
    } catch (err) {
      if (err.message === 'callback is not a function') done()
      else done(err)
    }
  })
})