diff --git a/lib/chai/core/assertions.js b/lib/chai/core/assertions.js index 82257f4c..6956c200 100644 --- a/lib/chai/core/assertions.js +++ b/lib/chai/core/assertions.js @@ -1006,7 +1006,10 @@ Assertion.addProperty('empty', function () { undefined, ssfi ); - case 'function': { + case 'function': + case 'asyncfunction': + case 'generatorfunction': + case 'asyncgeneratorfunction': { const msg = flagMsg + '.empty was passed a function ' + _.getName(val); throw new AssertionError(msg.trim(), undefined, ssfi); } diff --git a/test/assert.js b/test/assert.js index f9f43045..da4b91bf 100644 --- a/test/assert.js +++ b/test/assert.js @@ -2941,6 +2941,10 @@ describe('assert', function () { assert[isEmpty](function() {}, 'blah'); }, "blah: .empty was passed a function"); + err(function(){ + assert[isEmpty](async function() {}, 'blah'); + }, "blah: .empty was passed a function"); + if (FakeArgs.name === 'FakeArgs') { err(function(){ assert[isEmpty](FakeArgs); @@ -3039,6 +3043,10 @@ describe('assert', function () { assert[isNotEmpty](function() {}, 'blah'); }, "blah: .empty was passed a function"); + err(function(){ + assert[isNotEmpty](function*() {}, 'blah'); + }, "blah: .empty was passed a function"); + if (FakeArgs.name === 'FakeArgs') { err(function(){ assert[isNotEmpty](FakeArgs); diff --git a/test/expect.js b/test/expect.js index 3d02cdf1..0184fb0f 100644 --- a/test/expect.js +++ b/test/expect.js @@ -1698,6 +1698,18 @@ describe('expect', function () { expect(function() {}, 'blah').to.be.empty; }, "blah: .empty was passed a function"); + err(function(){ + expect(async function() {}, 'blah').to.be.empty; + }, "blah: .empty was passed a function"); + + err(function(){ + expect(function*() {}, 'blah').to.be.empty; + }, "blah: .empty was passed a function"); + + err(function(){ + expect(async function*() {}, 'blah').to.not.be.empty; + }, "blah: .empty was passed a function"); + if (FakeArgs.name === 'FakeArgs') { err(function(){ expect(FakeArgs).to.be.empty;