diff --git a/packages/vitest/src/node/reporters/base.ts b/packages/vitest/src/node/reporters/base.ts index f6791287b..bac382b98 100644 --- a/packages/vitest/src/node/reporters/base.ts +++ b/packages/vitest/src/node/reporters/base.ts @@ -22,7 +22,7 @@ import type { } from './reported-tasks' import { readFileSync } from 'node:fs' import { performance } from 'node:perf_hooks' -import { toArray } from '@vitest/utils/helpers' +import { ordinal, toArray } from '@vitest/utils/helpers' import { parseStacktrace } from '@vitest/utils/source-map' import { relative } from 'pathe' import c from 'tinyrainbow' @@ -1572,25 +1572,14 @@ function formatErrorAttempts(task: Task, attempts: (TaskResultAttempt | undefine } function formatAttempt({ repeatIndex, retryIndex }: TaskResultAttempt): string { - const repeat = repeatIndex ? `${formatOrdinal(repeatIndex)} repeat` : '' - const retry = retryIndex ? `${formatOrdinal(retryIndex)} retry` : '' + const repeat = repeatIndex ? `${ordinal(repeatIndex)} repeat` : '' + const retry = retryIndex ? `${ordinal(retryIndex)} retry` : '' if (repeat && retry) { return `${retry} of ${repeat}` } return repeat || retry || 'initial run' } -const ordinalRules = new Intl.PluralRules('en', { type: 'ordinal' }) -const ordinalSuffixes: Partial> = { - one: 'st', - two: 'nd', - few: 'rd', -} - -function formatOrdinal(n: number): string { - return `${n}${ordinalSuffixes[ordinalRules.select(n)] ?? 'th'}` -} - function getErrorsWithAttempt(task: Task): { error: TestError; attempt?: TaskResultAttempt }[] { const attempts = task.result?.attempts if (!attempts?.length) {