aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@sinonjs/commons/lib/function-name.test.js
diff options
context:
space:
mode:
authorJoel Kronqvist <work.joelkronqvist@pm.me>2022-03-11 20:46:06 +0200
committerJoel Kronqvist <work.joelkronqvist@pm.me>2022-03-11 20:46:06 +0200
commit080c5819d87b933816d724a83f3bf4f1686770a7 (patch)
tree4a2ccc68b27edf7d4cbc586c932cc7542b655e19 /node_modules/@sinonjs/commons/lib/function-name.test.js
parent5ac7049a9d30733165cc212dee308163c2a14644 (diff)
parentd003b82235a9329f912522a2f70aa950dfce4998 (diff)
downloadLYLLRuoka-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.js76
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);
+ });
+ });
+});