Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: handle errors thrown in fixtures #4436

Merged
merged 1 commit into from
Nov 10, 2023
Merged

fix: handle errors thrown in fixtures #4436

merged 1 commit into from
Nov 10, 2023

Conversation

dsyddall
Copy link
Contributor

@dsyddall dsyddall commented Nov 3, 2023

Description

Fixes #4435

When running a test with a fixture function that throws an error, the error is not handled by the test runner and the test times out. (Reproduction: https://stackblitz.com/edit/vitest-dev-vitest-72lr7i?file=test%2Ffixture-error.test.ts)

Example:

import { test } from 'vitest';

const myTest = test.extend<{ a: never }>({
  a: async () => {
    throw new Error('Error thrown in test fixture');
  },
});

myTest('error in fixture causes a timeout', ({ a }) => {});

Instead of timing out, the test runner should handle the error immediately. This PR amends the withFixtures function to catch any rejected fixture promise and forwards the error so that the test fails immediately.

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

  • It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
  • Ideally, include a test that fails without this PR but passes with it.
  • Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

  • Run the tests with pnpm test:ci.

Documentation

  • If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

  • Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

Copy link

stackblitz bot commented Nov 3, 2023

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

Copy link

netlify bot commented Nov 3, 2023

Deploy Preview for fastidious-cascaron-4ded94 canceled.

Name Link
🔨 Latest commit 6c7e972
🔍 Latest deploy log https://app.netlify.com/sites/fastidious-cascaron-4ded94/deploys/654538c18f05af000848ec9f

@sheremet-va sheremet-va merged commit f6844ad into vitest-dev:main Nov 10, 2023
12 of 15 checks passed
@dsyddall dsyddall deleted the fix-handle-errors-thrown-in-fixtures branch November 10, 2023 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Errors thrown in fixture functions are not handled and cause tests to time out
2 participants