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: process sourcemaps for stack traces from globalSetup files #7101

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

aleclarson
Copy link
Contributor

@aleclarson aleclarson commented Dec 18, 2024

Description

When a globalSetup file (or a module imported as a result of a globalSetup file's execution) has an error at runtime, the sourcemaps were not being used, because globalSetup files are executed with node:vm (which doesn't read sourcemaps).

In my manual testing, calling installSourcemapsSupport before loading the globalSetup files will fix the issue.

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

netlify bot commented Dec 18, 2024

Deploy Preview for vitest-dev ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit b8ba392
🔍 Latest deploy log https://app.netlify.com/sites/vitest-dev/deploys/6762ee1eaa34c0000828e005
😎 Deploy Preview https://deploy-preview-7101--vitest-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@aleclarson aleclarson marked this pull request as ready for review December 18, 2024 18:43
Copy link

pkg-pr-new bot commented Dec 25, 2024

@vitest/browser

npm i https://pkg.pr.new/@vitest/browser@7101

@vitest/coverage-istanbul

npm i https://pkg.pr.new/@vitest/coverage-istanbul@7101

@vitest/expect

npm i https://pkg.pr.new/@vitest/expect@7101

@vitest/coverage-v8

npm i https://pkg.pr.new/@vitest/coverage-v8@7101

@vitest/mocker

npm i https://pkg.pr.new/@vitest/mocker@7101

@vitest/pretty-format

npm i https://pkg.pr.new/@vitest/pretty-format@7101

@vitest/runner

npm i https://pkg.pr.new/@vitest/runner@7101

@vitest/snapshot

npm i https://pkg.pr.new/@vitest/snapshot@7101

@vitest/spy

npm i https://pkg.pr.new/@vitest/spy@7101

@vitest/ui

npm i https://pkg.pr.new/@vitest/ui@7101

@vitest/utils

npm i https://pkg.pr.new/@vitest/utils@7101

vite-node

npm i https://pkg.pr.new/vite-node@7101

vitest

npm i https://pkg.pr.new/vitest@7101

@vitest/web-worker

npm i https://pkg.pr.new/@vitest/web-worker@7101

@vitest/ws-client

npm i https://pkg.pr.new/@vitest/ws-client@7101

commit: b8ba392

Copy link
Contributor

@hi-ogawa hi-ogawa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR 👋
I had a few concerns about this, but while thinking about it, they might be actually a non issue. Let me write this down.

The first one is what happens when multiple projects have globalSetup and do installSourcemapsSupport. This appears to be fine because Vite-node supports registering multiple handlers properly for each installSourcemapsSupport call. I was just testing this with pkg.pr.new in my repro and error stack is working after this PR https://github.com/hi-ogawa/reproductions/tree/main/vitest-global-setup-error-stack

The 2nd one is mostly about our internal tests. We often runs vitest inside vitest via runVitest of test-utils and I'm not sure whether installSourcemapsSupport referenced from inside and outside are the same thing. I'll check this later.

For the tests, there is a test asserting global setup error stack, which just happens to pass since the code is plain js (I found this while doing #7096):

expect(stderr).toContain('setup-unhandled-rejections.ts:2:42')

Can you make setup-unhandled-rejections.ts more complicated and see if error position maps correctly?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants