You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a massive upgrade from version 5.8.0 to 18.0.0, spanning 13 major versions and a complete architectural overhaul of the tap testing framework. A direct upgrade is not possible without a significant migration effort, as nearly every aspect of the library has changed.
Key Breaking Changes:
Architecture and Modularity: The framework was rewritten in TypeScript and now uses a plugin-based architecture. Core functionalities like assertions (@tapjs/asserts), lifecycle hooks (@tapjs/before-each), and even TypeScript support are now managed as plugins.
Configuration:
Configuration loading is stricter. All temporary files, including coverage and process info, are now stored in a single .tap directory.
The tap config command replaces the --dump-config flag.
Filtering tests via test-regexp and test-ignore has been replaced with include and exclude glob patterns.
Coverage Enforcement: Code coverage checking is enabled by default in version 18. Builds will fail if coverage does not meet the threshold (defaulting to 100%), which is a major change from older versions.
API and Globals:
Mocha-style globals (describe, it) are no longer available by default. They have been moved to the @tapjs/mocha-globals plugin and must be explicitly configured.
Assertion synonyms (e.g., t.is_not_equal) have been deprecated and removed.
t.beforeEach and t.afterEach no longer accept callback arguments and now require returning a promise for async operations.
CLI Changes: The tap --watch command has been replaced by the new tap repl command.
Node.js Support: Support for Node.js versions below 10 was dropped.
Recommendation: This upgrade cannot be performed without a thorough migration. Developers must review the official upgrading guide, refactor test configurations, update test files to use modern APIs and promise-based patterns, and address the new default coverage requirements. Treat this as a rewrite of the test suite.
Notice 🤖: This content was augmented using artificial intelligence. AI-generated content may contain errors and should be reviewed for accuracy before use.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Snyk has created this PR to fix 5 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):
package.jsonpackage-lock.jsonVulnerabilities that will be fixed with an upgrade:
SNYK-JS-HANDLEBARS-15803084
SNYK-JS-HANDLEBARS-15803082
SNYK-JS-HANDLEBARS-15807042
SNYK-JS-HANDLEBARS-15807040
SNYK-JS-HANDLEBARS-15803086
Breaking Change Risk
Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic
Learn how to fix vulnerabilities with free interactive lessons:
🦉 Access of Resource Using Incompatible Type ('Type Confusion')
🦉 Access of Resource Using Incompatible Type ('Type Confusion')
🦉 Improper Encoding or Escaping of Output