本文整理汇总了TypeScript中jest-diff.default函数的典型用法代码示例。如果您正苦于以下问题:TypeScript default函数的具体用法?TypeScript default怎么用?TypeScript default使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了default函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: Error
const _toMatchSnapshot = ({
context,
received,
propertyMatchers,
testName,
inlineSnapshot,
}: {
context: Context;
received: any;
propertyMatchers?: any;
testName?: string;
inlineSnapshot?: string;
}) => {
context.dontThrow && context.dontThrow();
testName = typeof propertyMatchers === 'string' ? propertyMatchers : testName;
const {currentTestName, isNot, snapshotState} = context;
if (isNot) {
const matcherName =
typeof inlineSnapshot === 'string'
? 'toMatchInlineSnapshot'
: 'toMatchSnapshot';
throw new Error(
`Jest: \`.not\` cannot be used with \`.${matcherName}()\`.`,
);
}
if (!snapshotState) {
throw new Error('Jest: snapshot state must be initialized.');
}
const fullTestName =
testName && currentTestName
? `${currentTestName}: ${testName}`
: currentTestName || '';
if (typeof propertyMatchers === 'object') {
if (propertyMatchers === null) {
throw new Error(`Property matchers must be an object.`);
}
const propertyPass = context.equals(received, propertyMatchers, [
context.utils.iterableEquality,
context.utils.subsetEquality,
]);
if (!propertyPass) {
const key = snapshotState.fail(fullTestName, received);
const report = () =>
`${RECEIVED_COLOR('Received value')} does not match ` +
`${EXPECTED_COLOR(`snapshot properties for "${key}"`)}.\n\n` +
`Expected snapshot to match properties:\n` +
` ${context.utils.printExpected(propertyMatchers)}` +
`\nReceived:\n` +
` ${context.utils.printReceived(received)}`;
return {
message: () =>
matcherHint('.toMatchSnapshot', 'value', 'properties') +
'\n\n' +
report(),
name: 'toMatchSnapshot',
pass: false,
report,
};
} else {
received = utils.deepMerge(received, propertyMatchers);
}
}
const result = snapshotState.match({
error: context.error,
inlineSnapshot,
received,
testName: fullTestName,
});
const {pass} = result;
let {actual, expected} = result;
let report: () => string;
if (pass) {
return {message: () => '', pass: true};
} else if (!expected) {
report = () =>
`New snapshot was ${RECEIVED_COLOR('not written')}. The update flag ` +
`must be explicitly passed to write a new snapshot.\n\n` +
`This is likely because this test is run in a continuous integration ` +
`(CI) environment in which snapshots are not written by default.\n\n` +
`${RECEIVED_COLOR('Received value')} ` +
`${actual}`;
} else {
expected = (expected || '').trim();
actual = (actual || '').trim();
const diffMessage = diff(expected, actual, {
aAnnotation: 'Snapshot',
bAnnotation: 'Received',
expand: snapshotState.expand,
});
//.........这里部分代码省略.........
示例2: Error
const _toMatchSnapshot = ({
context,
expectedArgument,
hint,
inlineSnapshot,
matcherName,
options,
propertyMatchers,
received,
}: MatchSnapshotConfig) => {
context.dontThrow && context.dontThrow();
hint = typeof propertyMatchers === 'string' ? propertyMatchers : hint;
const {currentTestName, isNot, snapshotState} = context;
if (isNot) {
throw new Error(
matcherHint(matcherName, undefined, expectedArgument, options) +
'\n\n' +
NOT_SNAPSHOT_MATCHERS,
);
}
if (!snapshotState) {
throw new Error(
matcherHint(matcherName, undefined, expectedArgument, options) +
'\n\nsnapshot state must be initialized',
);
}
const fullTestName =
currentTestName && hint
? `${currentTestName}: ${hint}`
: currentTestName || ''; // future BREAKING change: || hint
if (typeof propertyMatchers === 'object') {
if (propertyMatchers === null) {
throw new Error(`Property matchers must be an object.`);
}
const propertyPass = context.equals(received, propertyMatchers, [
context.utils.iterableEquality,
context.utils.subsetEquality,
]);
if (!propertyPass) {
const key = snapshotState.fail(fullTestName, received);
const matched = /(\d+)$/.exec(key);
const count = matched === null ? 1 : Number(matched[1]);
const report = () =>
`Snapshot name: ${printName(currentTestName, hint, count)}\n` +
'\n' +
`Expected properties: ${context.utils.printExpected(
propertyMatchers,
)}\n` +
`Received value: ${context.utils.printReceived(received)}`;
return {
message: () =>
matcherHint(matcherName, undefined, expectedArgument, options) +
'\n\n' +
report(),
name: matcherName,
pass: false,
report,
};
} else {
received = utils.deepMerge(received, propertyMatchers);
}
}
const result = snapshotState.match({
error: context.error,
inlineSnapshot,
received,
testName: fullTestName,
});
const {count, pass} = result;
let {actual, expected} = result;
let report: () => string;
if (pass) {
return {message: () => '', pass: true};
} else if (!expected) {
report = () =>
`New snapshot was ${RECEIVED_COLOR('not written')}. The update flag ` +
`must be explicitly passed to write a new snapshot.\n\n` +
`This is likely because this test is run in a continuous integration ` +
`(CI) environment in which snapshots are not written by default.\n\n` +
`${RECEIVED_COLOR('Received value')} ` +
`${actual}`;
} else {
expected = (expected || '').trim();
actual = (actual || '').trim();
const diffMessage = diff(expected, actual, {
aAnnotation: 'Snapshot',
bAnnotation: 'Received',
expand: snapshotState.expand,
});
//.........这里部分代码省略.........
示例3: getLabelPrinter
export const printDiffOrStringify = (
expected: unknown,
received: unknown,
expectedLabel: string,
receivedLabel: string,
expand: boolean, // CLI options: true if `--expand` or false if `--no-expand`
): string => {
const printLabel = getLabelPrinter(expectedLabel, receivedLabel);
if (
typeof expected === 'string' &&
typeof received === 'string' &&
expected.length !== 0 &&
received.length !== 0 &&
!MULTILINE_REGEXP.test(expected) &&
!MULTILINE_REGEXP.test(received)
) {
const diffs = diffStrings(expected, received);
if (Array.isArray(diffs)) {
const expectedLine =
printLabel(expectedLabel) + printExpected(getExpectedString(diffs));
const receivedLine =
printLabel(receivedLabel) + printReceived(getReceivedString(diffs));
return expectedLine + '\n' + receivedLine;
}
} else if (isDiffable(expected, received)) {
// Cannot use same serialization as shortcut to avoid diff,
// because stringify (that is, pretty-format with min option)
// omits constructor name for array or object, too bad so sad :(
const difference = jestDiff(expected, received, {
aAnnotation: expectedLabel,
bAnnotation: receivedLabel,
expand,
});
if (
typeof difference === 'string' &&
difference.includes('- ' + expectedLabel) &&
difference.includes('+ ' + receivedLabel)
) {
return difference;
}
}
// Cannot reuse value of stringify(received) in report string,
// because printReceived does inverse highlight space at end of line,
// but RECEIVED_COLOR does not (it refers to a plain chalk method).
return (
`${printLabel(expectedLabel)}${printExpected(expected)}\n` +
`${printLabel(receivedLabel)}${
stringify(expected) === stringify(received)
? 'serializes to the same string'
: printReceived(received)
}`
);
};
示例4: shouldPrintDiff
export const diff: typeof jestDiff = (a, b, options) =>
shouldPrintDiff(a, b) ? jestDiff(a, b, options) : null;