Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
test testing-tools vite
Something went wrong. Try again.
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */
import type { CompareKeys } from '@vitest/pretty-format'import type { DiffOptions, DiffOptionsNormalized } from './types'import c from 'tinyrainbow'
const noColor = (string: string): string => string
const DIFF_CONTEXT_DEFAULT = 5const DIFF_TRUNCATE_THRESHOLD_DEFAULT = 0 // not truncate
function getDefaultOptions(): DiffOptionsNormalized { return { aAnnotation: 'Expected', aColor: c.green, aIndicator: '-', bAnnotation: 'Received', bColor: c.red, bIndicator: '+', changeColor: c.inverse, changeLineTrailingSpaceColor: noColor, commonColor: c.dim, commonIndicator: ' ', commonLineTrailingSpaceColor: noColor, compareKeys: undefined, contextLines: DIFF_CONTEXT_DEFAULT, emptyFirstOrLastLinePlaceholder: '', expand: false, includeChangeCounts: false, omitAnnotationLines: false, patchColor: c.yellow, printBasicPrototype: false, truncateThreshold: DIFF_TRUNCATE_THRESHOLD_DEFAULT, truncateAnnotation: '... Diff result is truncated', truncateAnnotationColor: noColor, }}
function getCompareKeys(compareKeys?: CompareKeys): CompareKeys { return compareKeys && typeof compareKeys === 'function' ? compareKeys : undefined}
function getContextLines(contextLines?: number): number { return typeof contextLines === 'number' && Number.isSafeInteger(contextLines) && contextLines >= 0 ? contextLines : DIFF_CONTEXT_DEFAULT}
// Pure function returns options with all properties.export function normalizeDiffOptions( options: DiffOptions = {},): DiffOptionsNormalized { return { ...getDefaultOptions(), ...options, compareKeys: getCompareKeys(options.compareKeys), contextLines: getContextLines(options.contextLines), }}