fix(linter/vitest/prefer-expect-type-of): recommend toBeTypeOf instead of expectTypeOf#22612
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the vitest/prefer-expect-type-of lint rule to match upstream eslint-plugin-vitest behavior by recommending Vitest’s toBeTypeOf matcher (and corresponding fix) instead of expectTypeOf.
Changes:
- Update the diagnostic message/help text and documentation to recommend
expect(value).toBeTypeOf(type)forexpect(typeof value).toBe/toEqual(type)patterns. - Adjust the rule implementation to build
toBeTypeOf(...)fixes using the original matcher argument text. - Refresh the rule’s snapshot output and expand test coverage for additional
typeoftype strings and non-literal type arguments.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| crates/oxc_linter/src/rules/vitest/prefer_expect_type_of.rs | Switches the rule’s recommendation/fix from expectTypeOf to toBeTypeOf, updates docs, and expands tests accordingly. |
| crates/oxc_linter/src/snapshots/vitest_prefer_expect_type_of.snap | Updates snapshot output to reflect the new diagnostic wording, help text, and documentation URL. |
Merging this PR will not alter performance
Comparing Footnotes
|
…ead of `expectTypeOf`
c15bca7 to
16b34fd
Compare
# Oxlint ### 🚀 Features - 10da26b linter: `no-misleading-character-class` add suggestions for regex literal (#22681) (Sysix) - b84941e linter/vue: Implement no-expose-after-await rule (#22675) (bab) - 98b98c1 linter/vue: Implement no-computed-properties-in-data rule (#22674) (bab) - 868e2e8 linter: Add suggestion for `no-misleading-character-class` (#22631) (Sysix) - 2d4c919 oxlint: Support `vite-plus/resolveConfig` for vite.config.ts (#22456) (leaysgur) - 2a60012 linter/vue: Implement require-render-return rule (#22613) (bab) - 9f227fd linter/vue: Implement no-deprecated-props-default-this rule (#21892) (bab) - 9cd28b3 linter: Add debug option to print files to be linted (#22546) (camchenry) - 87f065e linter/vue: Implement return-in-emits-validator rule (#21935) (bab) - ea0380c linter/unicorn: Implement `import-style` rule (#22173) (Hao Chen) - dde40fe linter/vue: Implement no-watch-after-await rule (#22006) (bab) - a735eb0 linter/vue: Implement valid-next-tick rule (#22531) (bab) - 6dc615d linter/vue: Implement no-shared-component-data rule (#21842) (bab) - a656418 linter/vue: Implement valid-define-options rule (#22107) (bab) - bb6f1b2 linter/vue: Implement require-slots-as-functions rule (#22244) (bab) - 5fa4774 linter/n: Implement `callback-return` rule (#22470) (Mikhail Baev) ### 🐛 Bug Fixes - 52bd016 linter: Respect allow unused disable directives in LSP (#22715) (camc314) - fa7c463 semantic: Correct TS enum member symbol spans (#22689) (camc314) - ed445ba linter: Respect flags overrides for `RegExp(/regex/i, "u")` (#22678) (Sysix) - 26b9396 semantic: Resolve parameter decorators outside parameter scope (#22623) (camc314) - 203952d linter: `no-misleading-character-class` fix `is_unicode_code_point_escape` check (#22655) (Sysix) - 2f64d3d linter: `no-misleading-character-class` own diagnostic for surrogate pairs without u flag (#22654) (Sysix) - 0c6ebc2 linter/eslint/no-lone-blocks: Do not flag empty loops (#22649) (Mikhail Baev) - 2a7562e linter/no-focused-tests: Mark fixer as a suggestion (#22645) (camc314) - dbe644f linter: Respect args none for unused rest parameters (#22627) (camc314) - d0211b0 linter: Allow undefined in DummyRuleMap index (#22626) (camc314) - 36fc0ec oxlint/lsp: "ignore this" actions merge with existing directive (#22604) (Sysix) - f7f370e linter/vitest/prefer-expect-type-of: Recommend `toBeTypeOf` instead of `expectTypeOf` (#22612) (Mikhail Baev) - 77063e5 linter/consistent-indexed-object-style: Preserve interface modifiers in fixes (#22579) (camc314) - 4f33aa7 linter: Treat `TSGlobalDeclaration` as ambient in `has_ambient_typescript_ancestor` (#22577) (camc314) ### ⚡ Performance - c22938d linter/no-async-endpoint-handlers: Populate node types (#22601) (camc314) - 607486e linter/no-negated-condition: Populate node types (#22602) (camc314) - 4dcaa59 linter/consistent-type-imports: Populate node types (#22600) (camc314) - 5bd3b25 linter/no-unused-vars: Avoid cloned ancestor iterator (#22598) (camc314) - 97fe9ba linter/no-extra-non-null-assertion: Reduce node matches (#22588) (camc314) - ae98296 linter/consistent-indexed-object-style: Populate node types (#22578) (camc314) # Oxfmt ### 🚀 Features - 16b8058 oxfmt: Support `vite-plus/resolveConfig` for vite.config.ts (#22454) (leaysgur) ### 🐛 Bug Fixes - 5a26479 formatter: Preserve import phases (#22692) (Cameron) ### ⚡ Performance - 78cf83f formatter: Pre-size output buffer using source text length (#22594) (Dunqing) Co-authored-by: Dunqing <[email protected]>
Aligns the
vitest/prefer-expect-type-ofrule with upstream by recommendingtoBeTypeOfinstead ofexpectTypeOfref PR
released in 1.6.17