- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 198
 
⬆️ Update vitest monorepo to v4 (major) #6236
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
base: main
Are you sure you want to change the base?
Conversation
          
 | 
    
| 
           Review the following changes in direct dependencies. Learn more about Socket for GitHub.  | 
    
282f967    to
    bf78a5d      
    Compare
  
    
          
@fast-check/ava
 @fast-check/expect-type
 fast-check
 @fast-check/jest
 @fast-check/packaged
 @fast-check/poisoning
 @fast-check/vitest
 @fast-check/worker
 commit:   | 
    
          Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above.  | 
    
Applied by GitHub Action workflow: Format PR Run ID: 18992869395 Target: branch 'renovate/major-vitest-monorepo'
Applied by GitHub Action workflow: PR PNPM Conflicts Run ID: 19002525802 Target PR: 6236
| 
           @copilot part of the test failures are linked to the error described here: https://vitest.dev/guide/migration.html#spyon-and-fn-support-constructors. could you fix them by relying on the class based mock  | 
    
Vitest v4 no longer supports using arrow functions in `mockImplementation` for constructors (see [migration guide](https://vitest.dev/guide/migration.html#spyon-and-fn-support-constructors)). ## Changes - **Worker mocks**: Changed `Worker.mockImplementation(() => ({...}))` to class-based mocks - **Arbitrary constructor spies**: Replaced arrow functions with `function` keyword in `mockImplementation` calls across 25 test files - **Scheduler mocks**: Converted `mockReturnValue` to `mockImplementation` for `SchedulerArbitrary` and `SchedulerImplem` constructors ## Example ```typescript // Before (v3) const IntegerArbitrary = vi.spyOn(IntegerArbitraryMock, 'IntegerArbitrary'); IntegerArbitrary.mockImplementation(() => instance); // After (v4) const IntegerArbitrary = vi.spyOn(IntegerArbitraryMock, 'IntegerArbitrary'); IntegerArbitrary.mockImplementation(function() { return instance; } as any); ``` ```typescript // Before (v3) Worker.mockImplementation(() => ({ on, postMessage, terminate }) as any); // After (v4) Worker.mockImplementation(class { on = on; postMessage = postMessage; terminate = terminate; } as any); ``` <!-- START COPILOT CODING AGENT TIPS --> --- ✨ Let Copilot coding agent [set things up for you](https://github.com/dubzzz/fast-check/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo. --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: dubzzz <[email protected]>
| 
           👋 A preview of the new documentation is available at: http://69075aef65a796d7a6534843--dubzzz-fast-check.netlify.app  | 
    
Applied by GitHub Action workflow: PR Format Run ID: 19028178794 Target PR: 6236
Applied by GitHub Action workflow: PR PNPM Conflicts Run ID: 19028200853 Target PR: 6236
| 
           Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub. 
  | 
    
This PR contains the following updates:
^3.0.9->^4.0.5^3.2.4->^4.0.5Release Notes
vitest-dev/vitest (@vitest/coverage-v8)
v4.0.5Compare Source
🐞 Bug Fixes
ssr.noExternalwhen externalizing dependencies - by @sheremet-va in #8862 (a4f86)Locatortype in selectOptions element parameter - by @rzzf and @sheremet-va in #8848 (7ee28)getBuiltinsunconditionally - by @sapphi-red in #8863 (0e858)groupIdtogroupOrderin error message - by @Yohannfra in #8856 (b9aab)🏎 Performance
--no-isolate --maxWorkers=1- by @AriPerkkio in #8835 (584aa)View changes on GitHub
v4.0.4Compare Source
🐞 Bug Fixes
node:prefix - by @sheremet-va in #8829 (06208)MaxListenersExceededWarning- by @AriPerkkio in #8820 (d1bff)stdioto logger - by @AriPerkkio in #8809 (fb95f)vi.mockedutility - by @sheremet-va in #8839 (f8756)isolate: false- by @AriPerkkio in #8821 (573dc)🏎 Performance
View changes on GitHub
v4.0.3Compare Source
🐞 Bug Fixes
View changes on GitHub
v4.0.2Compare Source
🐞 Bug Fixes
length- by @sheremet-va in #8778 (d4c2b)restoreMocksandmockResetis set in the config - by @sheremet-va in #8781 (2eedb)View changes on GitHub
v4.0.1Compare Source
🐞 Bug Fixes
getBuiltinscheck - by @sheremet-va in #8765 (81000)View changes on GitHub
v4.0.0Compare Source
🚨 Breaking Changes
'basic'reporter - by @AriPerkkio in #7884 (82fcf)vitest/nodeexports - by @sheremet-va in #8197 (dc848)vitest/nodeinstead - by @sheremet-va in #8200 (1e60c)workspaceoption in favor ofprojects- by @sheremet-va in #8218 (76fb7)--standalonewhen CLI filename filter is used - by @AriPerkkio in #8262 (013bf)minWorkersand set it automatically to 0 in non watch mode - by @sheremet-va in #8454 (2c2d1)treereporter - by @sheremet-va and @AriPerkkio in #8500 (25fd3)tinypool- by @AriPerkkio and @sheremet-va in #8705 (4822d)todoif no function is passed down totestordescribe- by @sheremet-va in #8346 (1a81c)🚀 Features
onUnhandledErrorcallback - by @sheremet-va in #8162 (924cb)expect.assertfor type narrowing - by @sheremet-va in #8695 (fe589)displayAnnotationsoption togithub-options- by @sheremet-va in #8706 (4a66d)experimental_parseSpecifications- by @sheremet-va in #8408 (fdeb2)enableCoverageanddisableCoveragemethods - by @sheremet-va and @AriPerkkio in #8412 (61eb7)getGlobalTestNamePatternmethod - by @sheremet-va in #8438 (bdb70)relativeModuleIdtoTestModule- by @sheremet-va in #8505 (3be09)getSeedmethod - by @sheremet-va in #8592 (438c4)toBeInViewportutility method to assert element is in viewport or not - by @Shinyaigeek in #8234 (ceed5)vitest initcli command - by @thejackshelton in #8330 (1638b)toMatchScreenshotfor Visual Regression Testing - by @macarie in #8041 (d45f9)trackUnhandledErrorsoption - by @sheremet-va in #8386 (c0ec0)lengthproperty to locators,toHaveLengthnow accepts locators - by @sheremet-va in #8512 (2308c)optionsonBrowserProviderOption- by @sheremet-va in #8609 (0d0e5)--inspectoption in webdriverio - by @sheremet-va in #8613 (38adc)autoUpdateto support percentage formatting - by @Battjmo and @AriPerkkio in #8456 (99e01)toBeNullableexpect function to check provided value is nullish - by @Shinyaigeek and @sheremet-va in #8294 (eeec5)automockerentry - by @sheremet-va in #8301 (e9c92)🐞 Bug Fixes
test.extend- by @AriPerkkio in #8278 (43977)--changedflag support tovitest listcommand - by @haakonjackfloat in #8270 and #8272 (e71a5)browser- by @sheremet-va in #8334 (0417a)oxcinstead ofesbuildonrolldown-vite- by @hi-ogawa in #8378 (e922e)stacksproperty in Node.js context - by @sheremet-va in #8392 (b825e)import.meta.resolveon Vite 7 - by @hi-ogawa in #8493 (549d3)expect.pollassertion fails - by @sheremet-va in #8483 (fb450)useFakeTimersis called multiple times - by @sheremet-va in #8504 (ed7e3)expect.extendmatchers - by @lzl0304 in #8520 (96945)globalSetupfiles - by @sheremet-va in #8534 (8978a)$and%formatting totest.for/eachtitle - by @hi-ogawa in #8557 (ea6d7)"./*"with specific files in vitest package - by @hi-ogawa in #8560 (ce746)optimizeDeps.includefor browser mode - by @jake-danton in #8570 (cdcf7)enginesfield to drop Node 18 support - by @sheremet-va in #8608 (9a0bf)baseoption doesn't crash vitest - by @sheremet-va in #8760 (9f0ec)locator.element()returnsHTMLElementorSVGElement- by @sheremet-va in #8440 (c1ac1)vitedirectly - by @sheremet-va in #8541 (d7fca)not.toBeInTheDocument()- by @sheremet-va in #8751 (f5d06)objectContainingexpect utility to have more compatibility to jest's one - by @Shinyaigeek in #8241 (480be)--projectfilter - by @gtbuchanan in #7885 (761be)vitest:coverage-transformplugin - by @AriPerkkio in #8477 (ff517)coverage.exclude- by @sheremet-va in #8731 (c9c30)regexpHoistableto allow whitespace before parentheses - by @cszhjh in #8231 (a0f9a)resolvedSourcescorrectly - by @sheremet-va in #8736 (8fc52)vitest --standalone- by @AriPerkkio in #8248 (37cc2)config.includeoption withconfig.browser.instances[].includeoption if it is specified - by @Shinyaigeek in #8260 (010fc)🏎 Performance
process.title- by @sheremet-va in #8453 (0a766)@vitest/expect- by @sheremet-va in #8461 (cc98c)workerIdfrom a global object - by @sheremet-va in #8507 (46b13)meta.resolveflag instead of a custom loader - by @sheremet-va in #8567 (2e063)View changes on GitHub
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.