12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
- exports.setMatchers = exports.getMatchers = exports.setState = exports.getState = exports.INTERNAL_MATCHER_FLAG = void 0;
- var _asymmetricMatchers = require('./asymmetricMatchers');
- var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;
- // Global matchers object holds the list of available matchers and
- // the state, that can hold matcher specific values that change over time.
- const JEST_MATCHERS_OBJECT = Symbol.for('$$jest-matchers-object'); // Notes a built-in/internal Jest matcher.
- // Jest may override the stack trace of Errors thrown by internal matchers.
- const INTERNAL_MATCHER_FLAG = Symbol.for('$$jest-internal-matcher');
- exports.INTERNAL_MATCHER_FLAG = INTERNAL_MATCHER_FLAG;
- if (!global.hasOwnProperty(JEST_MATCHERS_OBJECT)) {
- Object.defineProperty(global, JEST_MATCHERS_OBJECT, {
- value: {
- matchers: Object.create(null),
- state: {
- assertionCalls: 0,
- expectedAssertionsNumber: null,
- isExpectingAssertions: false,
- suppressedErrors: [] // errors that are not thrown immediately.
- }
- }
- });
- }
- const getState = () => global[JEST_MATCHERS_OBJECT].state;
- exports.getState = getState;
- const setState = state => {
- Object.assign(global[JEST_MATCHERS_OBJECT].state, state);
- };
- exports.setState = setState;
- const getMatchers = () => global[JEST_MATCHERS_OBJECT].matchers;
- exports.getMatchers = getMatchers;
- const setMatchers = (matchers, isInternal, expect) => {
- Object.keys(matchers).forEach(key => {
- const matcher = matchers[key];
- Object.defineProperty(matcher, INTERNAL_MATCHER_FLAG, {
- value: isInternal
- });
- if (!isInternal) {
- // expect is defined
- class CustomMatcher extends _asymmetricMatchers.AsymmetricMatcher {
- constructor(inverse = false, ...sample) {
- super(sample);
- this.inverse = inverse;
- }
- asymmetricMatch(other) {
- const _ref = matcher(other, ...this.sample),
- pass = _ref.pass;
- return this.inverse ? !pass : pass;
- }
- toString() {
- return `${this.inverse ? 'not.' : ''}${key}`;
- }
- getExpectedType() {
- return 'any';
- }
- toAsymmetricMatcher() {
- return `${this.toString()}<${this.sample.join(', ')}>`;
- }
- }
- expect[key] = (...sample) => new CustomMatcher(false, ...sample);
- if (!expect.not) {
- expect.not = {};
- }
- expect.not[key] = (...sample) => new CustomMatcher(true, ...sample);
- }
- });
- Object.assign(global[JEST_MATCHERS_OBJECT].matchers, matchers);
- };
- exports.setMatchers = setMatchers;
|