diff options
author | Joel Kronqvist <work.joelkronqvist@pm.me> | 2022-03-11 20:46:06 +0200 |
---|---|---|
committer | Joel Kronqvist <work.joelkronqvist@pm.me> | 2022-03-11 20:46:06 +0200 |
commit | 080c5819d87b933816d724a83f3bf4f1686770a7 (patch) | |
tree | 4a2ccc68b27edf7d4cbc586c932cc7542b655e19 /node_modules/@sinonjs/commons/lib/function-name.test.js | |
parent | 5ac7049a9d30733165cc212dee308163c2a14644 (diff) | |
parent | d003b82235a9329f912522a2f70aa950dfce4998 (diff) | |
download | LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.tar.gz LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.zip |
Merge branch 'master' of https://github.com/JoelHMikael/FoodJS
Updating remote changes
Diffstat (limited to 'node_modules/@sinonjs/commons/lib/function-name.test.js')
-rw-r--r-- | node_modules/@sinonjs/commons/lib/function-name.test.js | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/node_modules/@sinonjs/commons/lib/function-name.test.js b/node_modules/@sinonjs/commons/lib/function-name.test.js new file mode 100644 index 0000000..6dda3a4 --- /dev/null +++ b/node_modules/@sinonjs/commons/lib/function-name.test.js @@ -0,0 +1,76 @@ +"use strict"; + +var jsc = require("jsverify"); +var refute = require("@sinonjs/referee-sinon").refute; + +var functionName = require("./function-name"); + +describe("function-name", function() { + it("should return empty string if func is falsy", function() { + jsc.assertForall("falsy", function(fn) { + return functionName(fn) === ""; + }); + }); + + it("should use displayName by default", function() { + jsc.assertForall("nestring", function(displayName) { + var fn = { displayName: displayName }; + + return functionName(fn) === fn.displayName; + }); + }); + + it("should use name if displayName is not available", function() { + jsc.assertForall("nestring", function(name) { + var fn = { name: name }; + + return functionName(fn) === fn.name; + }); + }); + + it("should fallback to string parsing", function() { + jsc.assertForall("nat", function(naturalNumber) { + var name = "fn" + naturalNumber; + var fn = { + toString: function() { + return "\nfunction " + name; + } + }; + + return functionName(fn) === name; + }); + }); + + it("should not fail when a name cannot be found", function() { + refute.exception(function() { + var fn = { + toString: function() { + return "\nfunction ("; + } + }; + + functionName(fn); + }); + }); + + it("should not fail when toString is undefined", function() { + refute.exception(function() { + functionName(Object.create(null)); + }); + }); + + it("should not fail when toString throws", function() { + refute.exception(function() { + var fn; + try { + // eslint-disable-next-line no-eval + fn = eval("(function*() {})")().constructor; + } catch (e) { + // env doesn't support generators + return; + } + + functionName(fn); + }); + }); +}); |