Exemple #1
0
 : () => {
     const diffString =
       valuePassed && hasEndProp
         ? diff(value, result.value, {expand: this.expand})
         : '';
     return (
       matcherHint('.toHaveProperty', 'object', 'path', {
         secondArgument,
       } as MatcherHintOptions) +
       '\n\n' +
       `Expected the object:\n` +
       `  ${printReceived(object)}\n` +
       `To have a nested property:\n` +
       `  ${printExpected(keyPath)}\n` +
       (valuePassed
         ? `With a value of:\n  ${printExpected(value)}\n`
         : '') +
       (hasEndProp
         ? `Received:\n` +
           `  ${printReceived(result.value)}` +
           (diffString ? `\n\nDifference:\n\n${diffString}` : '')
         : traversedPath
         ? `Received:\n  ${RECEIVED_COLOR(
             'object',
           )}.${traversedPath}: ${printReceived(lastTraversedObject)}`
         : '')
     );
   };
Exemple #2
0
    const message = () => {
      const labelExpected = 'Expected length';
      const labelReceivedLength = 'Received length';
      const labelReceivedValue = `Received ${getType(received)}`;
      const printLabel = getLabelPrinter(
        labelExpected,
        labelReceivedLength,
        labelReceivedValue,
      );

      return (
        matcherHint(matcherName, undefined, undefined, options) +
        '\n\n' +
        `${printLabel(labelExpected)}${isNot ? 'not ' : ''}${printExpected(
          expected,
        )}\n` +
        (isNot
          ? ''
          : `${printLabel(labelReceivedLength)}${printReceived(
              received.length,
            )}\n`) +
        `${printLabel(labelReceivedValue)}${isNot ? '    ' : ''}${printReceived(
          received,
        )}`
      );
    };
Exemple #3
0
 : () =>
     matcherHint(matcherName, undefined, undefined, options) +
     '\n\n' +
     `Expected: ${printExpected(expected)}\n` +
     `Received: ${printReceived(received)}\n` +
     '\n' +
     `Expected precision:    ${printExpected(precision)}\n` +
     `Expected difference: < ${printExpected(expectedDiff)}\n` +
     `Received difference:   ${printReceived(receivedDiff)}`;
Exemple #4
0
 ? () =>
     matcherHint('toBeCloseTo', undefined, undefined, options) +
     '\n\n' +
     `Expected: not ${printExpected(expected)}\n` +
     (receivedDiff === 0
       ? ''
       : `Received:     ${printReceived(received)}\n` +
         '\n' +
         `Expected precision:        ${printExpected(precision)}\n` +
         `Expected difference: not < ${printExpected(expectedDiff)}\n` +
         `Received difference:       ${printReceived(receivedDiff)}`)
Exemple #5
0
 ? () =>
     matcherHint(matcherName, undefined, expectedArgument, options) +
     '\n\n' +
     (hasValue
       ? `Expected path: ${printExpected(expectedPath)}\n\n` +
         `Expected value: not ${printExpected(expectedValue)}` +
         (stringify(expectedValue) !== stringify(receivedValue)
           ? `\nReceived value:     ${printReceived(receivedValue)}`
           : '')
       : `Expected path: not ${printExpected(expectedPath)}\n\n` +
         `Received value: ${printReceived(receivedValue)}`)
Exemple #6
0
const formatReceived = (
  label: string,
  thrown: Thrown | null,
  key: string,
  expected?: string | RegExp,
) => {
  if (thrown === null) {
    return '';
  }

  if (key === 'message') {
    const message = thrown.message;

    if (typeof expected === 'string') {
      const index = message.indexOf(expected);
      if (index !== -1) {
        return (
          label +
          printReceivedStringContainExpectedSubstring(
            message,
            index,
            expected.length,
          ) +
          '\n'
        );
      }
    } else if (expected instanceof RegExp) {
      return (
        label +
        printReceivedStringContainExpectedResult(
          message,
          typeof expected.exec === 'function' ? expected.exec(message) : null,
        ) +
        '\n'
      );
    }

    return label + printReceived(message) + '\n';
  }

  if (key === 'name') {
    return thrown.isError
      ? label + printReceived(thrown.value.name) + '\n'
      : '';
  }

  if (key === 'value') {
    return thrown.isError ? '' : label + printReceived(thrown.value) + '\n';
  }

  return '';
};
Exemple #7
0
const getPrintedReturnValues = (calls: Array<any>, limit: number): string => {
  const result = [];

  for (let i = 0; i < calls.length && i < limit; i += 1) {
    result.push(printReceived(calls[i]));
  }

  if (calls.length > limit) {
    result.push(`...and ${printReceived(calls.length - limit)} more`);
  }

  return result.join('\n\n  ');
};
Exemple #8
0
 : () =>
     matcherHint(matcherName, undefined, undefined, options) +
     '\n\n' +
     printExpectedConstructorName('Expected constructor', expected) +
     (isPrimitive(received) || Object.getPrototypeOf(received) === null
       ? `\nReceived value has no prototype\nReceived value: ${printReceived(
           received,
         )}`
       : typeof received.constructor !== 'function'
       ? `\nReceived value: ${printReceived(received)}`
       : printReceivedConstructorName(
           'Received constructor',
           received.constructor,
         ));
Exemple #9
0
 const message = () =>
   matcherHint(matcherName, undefined, expectedArgument, options) +
   '\n\n' +
   `Expected path: ${printExpected(expectedPath)}\n` +
   `Received path: ${printReceived(
     expectedPathType === 'array' || receivedPath.length === 0
       ? receivedPath
       : receivedPath.join('.'),
   )}\n\n` +
   `Expected value: not ${printExpected(expectedValue)}\n` +
   `Received value:     ${printReceived(receivedValue)}\n\n` +
   DIM_COLOR(
     'Because a positive assertion passes for expected value undefined if the property does not exist, this negative assertion fails unless the property does exist and has a defined value',
   );
Exemple #10
0
 ? () =>
     matcherHint('.toEqual', undefined, undefined, {
       isNot: this.isNot,
     }) +
     '\n\n' +
     `Expected: ${printExpected(expected)}\n` +
     `Received: ${printReceived(received)}`