Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ You can inject parameters with [printf formatting](https://nodejs.org/api/util.h
- `%j`: json
- `%o`: object
- `%#`: index of the test case
- `%$`: number of the test case
- `%%`: single percent sign ('%')

```ts
Expand Down
3 changes: 2 additions & 1 deletion packages/runner/src/suite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -788,11 +788,12 @@ function formatName(name: string | Function) {
}

function formatTitle(template: string, items: any[], idx: number) {
if (template.includes('%#')) {
if (template.includes('%#') || template.includes('%$')) {
// '%#' match index of the test case
template = template
.replace(/%%/g, '__vitest_escaped_%__')
.replace(/%#/g, `${idx}`)
.replace(/%$/g, `${idx + 1}`)
.replace(/__vitest_escaped_%__/g, '%%')
}
const count = template.split('%').length - 1
Expand Down
22 changes: 22 additions & 0 deletions test/core/test/each.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,28 @@ test.each([
expect(result).toBe(expected)
})

test.each([
[1, 1, 2],
[1, 2, 3],
[2, 1, 3],
])('the number of the test case is %$', (a, b, expected) => {
expect(a + b).toBe(expected)
})

test.each([
[1, 2, 3],
[4, 5, 9],
])('return a promise like result %$', async (a, b, expected) => {
const promiseResolver = (first: number, second: number) => {
return new Promise((resolve) => {
setTimeout(() => resolve(first + second), 1)
})
}

const result = await promiseResolver(a, b)
expect(result).toBe(expected)
})

describe('context on test and describe - todo/skip', () => {
let count = 0

Expand Down
Loading