You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

32 lines
877 B

var test = require('tape')
var isFunction = require('./')
var parse = require('acorn').parse
test('throws if not a node', function (t) {
t.plan(2)
t.throws(function () { isFunction(null) })
t.throws(function () { isFunction({ whatever: 'xyz' }) })
})
test('FunctionDeclaration', function (t) {
t.plan(1)
t.ok(isFunction(parse('function a () {}').body[0]))
})
test('ArrowFunction', function (t) {
t.plan(1)
t.ok(isFunction(parse('(() => {})').body[0].expression))
})
test('FunctionExpression', function (t) {
t.plan(2)
t.ok(isFunction(parse('(function () {})').body[0].expression))
t.ok(isFunction(parse('(function a () {})').body[0].expression))
})
test('anything else', function (t) {
t.plan(3)
t.notOk(isFunction(parse('10').body[0]))
t.notOk(isFunction(parse('class A {}').body[0]))
t.notOk(isFunction(parse('var x = () => {}').body[0]))
})