Skip to content

fix(eslint-plugin): [no-floating-promises] allowForKnownSafeCalls now supports function names (fixes #11423) #11430

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

976520
Copy link

@976520 976520 commented Jul 28, 2025

PR Checklist

[x] Addresses an existing open issue: fixes #11423
[x] That issue was marked as accepting prs
[x] Steps in Contributing were taken

Overview

The allowForKnownSafeCalls option was only checking type-based matching using typeMatchesSomeSpecifier and completely ignoring value-based (function name) matching. This caused configurations like ["randomAsyncFunction"] to be ignored, even though the documentation indicated they should work 💖

  • f4d5dae

    • Added specific test cases for string-based function name matching
  • 8c1cc90

    • First check value-based matching using valueMatchesSomeSpecifier for function names
    • Fall back to type-based matching using typeMatchesSomeSpecifier for type specifications
    • Added the missing import for valueMatchesSomeSpecifier
  • af92aea

    • Updated documentation and test snapshots
    • Removed unnecessary skipValidation from example

976520 added 3 commits July 28, 2025 19:31
… option

Add test cases to verify that function name-based allowForKnownSafeCalls
configuration works correctly for locally defined async functions.
…tion names (typescript-eslint#11423)

The allowForKnownSafeCalls option was only checking type-based matching
and not value-based matching, causing function name specifications like
["myAsyncFunction"] to be ignored. Now properly checks both value and
type matching using valueMatchesSomeSpecifier.
- Remove skipValidation from allowForKnownSafeCalls example
- Update test snapshots after fixing function name matching
@typescript-eslint
Copy link
Contributor

Thanks for the PR, @976520!

typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community.

The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately.

Thanks again!


🙏 Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently on https://opencollective.com/typescript-eslint.

Copy link

netlify bot commented Jul 28, 2025

Deploy Preview for typescript-eslint ready!

Name Link
🔨 Latest commit af92aea
🔍 Latest deploy log https://app.netlify.com/projects/typescript-eslint/deploys/68877caadfa70e0008023500
😎 Deploy Preview https://deploy-preview-11430--typescript-eslint.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 99 (🟢 up 1 from production)
Accessibility: 97 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: 80 (no change from production)
View the detailed breakdown and full score reports

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

Copy link

nx-cloud bot commented Jul 28, 2025

View your CI Pipeline Execution ↗ for commit af92aea

Command Status Duration Result
nx run-many -t lint ❌ Failed 3m 10s View ↗
nx run integration-tests:test ❌ Failed 50s View ↗
nx test eslint-plugin --coverage=false ✅ Succeeded 5m 22s View ↗
nx run-many -t typecheck ✅ Succeeded 2m 18s View ↗
nx test typescript-estree --coverage=false ✅ Succeeded 2s View ↗
nx test eslint-plugin-internal --coverage=false ✅ Succeeded 3s View ↗
nx run types:build ✅ Succeeded 6s View ↗
nx run generate-configs ✅ Succeeded 6s View ↗
Additional runs (27) ✅ Succeeded ... View ↗

☁️ Nx Cloud last updated this comment at 2025-07-28 13:46:28 UTC

Copy link

codecov bot commented Jul 28, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.86%. Comparing base (6d8fae9) to head (af92aea).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #11430   +/-   ##
=======================================
  Coverage   90.86%   90.86%           
=======================================
  Files         503      503           
  Lines       51046    51056   +10     
  Branches     8418     8420    +2     
=======================================
+ Hits        46384    46394   +10     
  Misses       4648     4648           
  Partials       14       14           
Flag Coverage Δ
unittest 90.86% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...es/eslint-plugin/src/rules/no-floating-promises.ts 98.42% <100.00%> (+0.04%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

Bug: [no-floating-promises] allowForKnownSafeCalls doesn't work with string TypeOrValueSpecifiers
1 participant