vitest-dev / vitest-dev/vitest

Allow to opt-out from arguments destructuring in fixtures API

Open
#9,833 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement: pending triage
Dominant language
TypeScript
Stars
17.1k
Forks
2k
Avg merge
1d 22h
Merged PRs (30d)
94

Description

Clear and concise description of the problem

When a fixture does not use any other fixtures, it violates no-empty-pattern rule

export const test = baseTest.extend({
  // this triggers a eslint error: no-empty-pattern
  todos: async ({}, use) => {
    await use([]);
  }
})

Because this rule is a part of the recommended rules preset, it is enabled by default on many projects

This requires a manual opt out of the rule as shown in many examples

Suggested solution

Allow to opt out from destructuring arguments in this code:

export const test = baseTest.extend({
  todos: async (_, use) => {
    await use([]);
  }
})

_ variable placeholder is a common convention to skip unused arguments, which can be useful here as well

Alternative

No response

Additional context

No response

Validations

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the fixtures API entry point and reproduce the example with a fixture callback that destructures an empty object. Check the existing fixture tests, then verify that callbacks can use _ without triggering the no-empty-pattern issue while the current {} form remains supported.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
testing
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.