Skip to content

Latest commit

 

History

History
87 lines (57 loc) · 1.73 KB

valid-expect.md

File metadata and controls

87 lines (57 loc) · 1.73 KB

Enforce valid expect() usage (vitest/valid-expect)

💼 This rule is enabled in the ✅ recommended config.

⚠️ This rule warns in the 🌐 all config.

🔧 This rule is automatically fixable by the --fix CLI option.

This rule triggers a warning if expect is called with no argument or with more than one argument. You change that behavior by setting the minArgs and maxArgs options.

Options

  1. alwaysAwait
  • Type: boolean

  • Default: false

  • Enforce expect to be called with an await expression.

    // ✅ good
    await expect(Promise.resolve(1)).resolves.toBe(1)
    await expect(Promise.reject(1)).rejects.toBe(1)
    
    // ❌ bad
    expect(Promise.resolve(1)).resolves.toBe(1)
    expect(Promise.reject(1)).rejects.toBe(1)
  1. asyncMatchers
  • Type: string[]
  • Default: []
{
  "vitest/valid-expect": ["error", {
    "asyncMatchers": ["toBeResolved", "toBeRejected"]
  }]
}

avoid using asyncMatchers with expect:

  1. minArgs
  • Type: number

  • Default: 1

  • Enforce expect to be called with at least minArgs arguments.

    // ✅ good
    expect(1).toBe(1)
    expect(1, 2).toBe(1)
    expect(1, 2, 3).toBe(1)
    
    // ❌ bad
    expect().toBe(1)
    expect(1).toBe()
  1. maxArgs
  • Type: number

  • Default: 1

  • Enforce expect to be called with at most maxArgs arguments.

  • Exception: expect(value, "message") is allowed.

    // ✅ good
    expect(1).toBe(1)
    expect(1, "expect value to be one").toBe(1)
    const message = "expect value to be one"
    expect(1, `Error Message: ${message}`).toBe(1)
    
    
    // ❌ bad
    expect(1, 2, 3, 4).toBe(1)