diff options
Diffstat (limited to 'node_modules/jest-util/build/convertDescriptorToString.js')
-rw-r--r-- | node_modules/jest-util/build/convertDescriptorToString.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/jest-util/build/convertDescriptorToString.js b/node_modules/jest-util/build/convertDescriptorToString.js new file mode 100644 index 0000000..4b776af --- /dev/null +++ b/node_modules/jest-util/build/convertDescriptorToString.js @@ -0,0 +1,41 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.default = convertDescriptorToString; + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* eslint-disable local/ban-types-eventually */ +// See: https://github.com/facebook/jest/pull/5154 +function convertDescriptorToString(descriptor) { + if ( + typeof descriptor === 'string' || + typeof descriptor === 'number' || + descriptor === undefined + ) { + return descriptor; + } + + if (typeof descriptor !== 'function') { + throw new Error('describe expects a class, function, number, or string.'); + } + + if (descriptor.name !== undefined) { + return descriptor.name; + } // Fallback for old browsers, pardon Flow + + const stringified = descriptor.toString(); + const typeDescriptorMatch = stringified.match(/class|function/); + const indexOfNameSpace = // @ts-expect-error: typeDescriptorMatch exists + typeDescriptorMatch.index + typeDescriptorMatch[0].length; + const indexOfNameAfterSpace = stringified.search(/\(|\{/); + const name = stringified.substring(indexOfNameSpace, indexOfNameAfterSpace); + return name.trim(); +} |