Skip to content

Commit 8a25595

Browse files
committed
release: 11.0.0 [skip ci]
## [11.0.0](v10.1.0...v11.0.0) (2023-01-18) ### 💥 BREAKING CHANGES 💥 * In previous versions, the lodash.mergeWith customizer skipped source properties that resolved to `undefined`. With this version, the customizer now unsets these properties (sets them to `undefined`), allowing the end user to easily unset defaults (e.g. `filename`). * `babelOptions.filename` is now set to `filepath` by default rather than `undefined`. * **Implicit "global" options merging is no longer supported** In previous versions of babel-plugin-tester, any test object and fixture configuration option could be passed directly to babel-plugin-tester and apply "globally" across all test objects and fixtures. This was even the case for options that made no sense in a "global" context, such as `only`, `skip`, and `code`. In this version of babel-plugin-tester, only options explicitly listed in the documentation can be passed directly and applied globally. Unrecognized "rest" options are silently ignored. * **Test/fixture configuration is resolved early and consistently** In previous versions of babel-plugin-tester, test object and fixture configuration options were resolved in various places, with some options getting finalized before `it(...)` and `describe(...)` were called and others being determined as Jest was executing the test. In this version, all configuration options are resolved and finalized before `it(...)` and `describe(...)` are called. This also means configurations are finalized _before_ hooks like `beforeAll` get called by the testing framework. * **Fixture configuration schema is standardized** In previous versions of babel-plugin-tester, you could provide any key to `options.json` and it would be passed as-is to the plugin under test. This made it impossible to allow fixtures to be configured with the same flexibility as test objects. In this version of babel-plugin-tester, fixture `options.json` (and `options.js`) files must return a standard set of options. Non-standard properties are silently ignored. For instance: to pass options to the plugin under test, they must be provided via `pluginOptions`. * **Global `setup`/`teardown` no longer overwrites local versions** In previous versions of babel-plugin-tester, test-level `setup` and `teardown` functions overrode global `setup` and `teardown` functions. In this version of babel-plugin-tester, the global `setup` and `teardown` functions will be called alongside their test-level counterparts for each test and in a well-defined order (see documentation). * **`TypeError` for config error; `AssertionError` for test error** All configuration-related issues now throw `TypeError` instead of `AssertionError`. `AssertionError` is now exclusively used for failing tests. Additionally, the text of some error messages has been updated. * **`error` only captures exceptions from Babel** `error` (aka `throws`) no longer potentially captures exceptions thrown by the `formatResult` function. If the `formatResult` function throws, the entire test will fail immediately. * **`error` no longer accepts arbitrary class constructors** `error` (aka `throws`) no longer accepts arbitrary class constructors. Any provided class constructor must extend `Error`, e.g. built-ins like `SyntaxError` or custom error classes like `class MyError extends Error`. Thanks to the nature of JavaScript, **providing a class constructor that does not extend `Error` will lead to undefined behavior**. * **Built-in TypeScript support** TypeScript types are now included within the package itself, obviating the need to install a separate types package. Installing the old types package alongside this version of babel-plugin-tester will cause conflicts. * **Global `describe` and `it` functions must be defined** babel-plugin-tester will refuse to run if `describe`, `it`, `it.only`, or `it.skip` are not globally available. * **All test titles are now numbered** All test titles are now numbered (e.g. `"1. ..."`, `"2. ..."`, etc), including fixtures tests and tests with custom titles. * Minimum recommended node version bumped from 10.13.0 to 14.20.0 * Plugin names are once again automatically determined by analyzing the return value of the plugin function. Though this is implemented in a backwards-compatible way, there is a [small caveat](https://github.com/babel-utils/babel-plugin-tester#pluginname-inference-caveat). #### ✨ Features * Add support for testing presets ([73b90b3](73b90b3)) * Implement default filepath inference using Error stack trace ([9d1b321](9d1b321)) * **src:** add `exec`/`execFixture` support via Node's VM module ([4754f42](4754f42)) * **src:** add support for "only", "skip", and "title" test options in fixtures ([#90](#90)) ([89b58b5](89b58b5)) * **src:** add support for arbitrary run order of plugin under test ([#91](#91)) ([8c8b858](8c8b858)) * **src:** add support for loading prettier configuration files in fixtures ([f54deda](f54deda)) * **src:** add TEST_SKIP/TEST_NUM_SKIP/TEST_ONLY/TEST_NUM_ONLY env variable support ([13626d1](13626d1)) * **src:** bring back (lightweight) plugin name inference ([#92](#92)) ([f9ad903](f9ad903)) * **src:** implement `titleNumbering` and `restartTitleNumbering` options ([09e792d](09e792d)) * **src:** implement standard `setup`/`teardown` run order ([4ea283f](4ea283f)) * **src:** provide debug output support via debug package ([4c7c6e7](4c7c6e7)) * Windows support ([f214995](f214995)) #### 🪄 Fixes * **src:** ensure test function errors are not swallowed by teardown function errors ([2acfe37](2acfe37)) * **src:** fix fixtureOutputExt being ignored in root options.json ([#89](#89)) ([481be19](481be19)) * **src:** fix plugin run order for fixtures to match tests ([#88](#88)) ([fbb6c19](fbb6c19)) #### ⚙️ Build system * **deps:** bump prettier from 2.8.0 to 2.8.1 ([#98](#98)) ([0bdb351](0bdb351)) * **package:** restore @babel/[email protected] as minimum supported version ([00712c0](00712c0)) * Transmute codebase to TypeScript ([#96](#96)) ([5f588e9](5f588e9)) * Update tooling ([d5b4d9c](d5b4d9c)) #### 🔥 Reverted * *"test: make debugging names shorter and sweeter"* ([0b869bb](0b869bb)) #### 🧙🏿 Refactored * Lodash.mergeWith customizer now allows unsetting options by setting them to `undefined` ([74af680](74af680)) * Reorganize source into unified extensible tester pipeline w/ first-class fixtures support ([0c44392](0c44392))
1 parent 427fced commit 8a25595

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

Diff for: CHANGELOG.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this auto-generated
44
file. The format is based on [Conventional Commits][1];
55
this project adheres to [Semantic Versioning][2].
66

7-
## [11.0.0-canary.1][3] (2023-01-16)
7+
## [11.0.0][3] (2023-01-18)
88

99
### 💥 Breaking Changes 💥
1010

@@ -134,7 +134,7 @@ this project adheres to [Semantic Versioning][2].
134134
- Lodash.mergeWith customizer now allows unsetting options by setting them to `undefined` ([74af680][32])
135135
- Reorganize source into unified extensible tester pipeline w/ first-class fixtures support ([0c44392][33])
136136

137-
## [0.0.0-semantically-released][34] (2023-01-16)
137+
## [11.0.0-canary.1][34] (2023-01-18)
138138

139139
### 💥 Breaking Changes 💥
140140

@@ -552,7 +552,7 @@ this project adheres to [Semantic Versioning][2].
552552

553553
[1]: https://conventionalcommits.org
554554
[2]: https://semver.org
555-
[3]: https://github.com/babel-utils/babel-plugin-tester/compare/v10.1.0...v11.0.0-canary.1
555+
[3]: https://github.com/babel-utils/babel-plugin-tester/compare/v10.1.0...v11.0.0
556556
[4]: https://github.com/babel-utils/babel-plugin-tester#pluginname-inference-caveat
557557
[5]: https://github.com/babel-utils/babel-plugin-tester/commit/73b90b347051661ccc37d663419c1d89348dedfb
558558
[6]: https://github.com/babel-utils/babel-plugin-tester/commit/9d1b321e162f337963faf84c2e7a9323c55c5155
@@ -583,7 +583,7 @@ this project adheres to [Semantic Versioning][2].
583583
[31]: https://github.com/babel-utils/babel-plugin-tester/commit/0b869bb1c7ecfab115293a33233e175cf0738b64
584584
[32]: https://github.com/babel-utils/babel-plugin-tester/commit/74af680467dbc663cb82a5cd9c6581d1b5216ae5
585585
[33]: https://github.com/babel-utils/babel-plugin-tester/commit/0c4439292839da87508d027cbfbf2b7a96e7d6e7
586-
[34]: https://github.com/babel-utils/babel-plugin-tester/compare/v10.1.0...v0.0.0-semantically-released
586+
[34]: https://github.com/babel-utils/babel-plugin-tester/compare/v10.1.0...v11.0.0-canary.1
587587
[35]: https://github.com/babel-utils/babel-plugin-tester/compare/v10.0.0...v10.1.0
588588
[36]: https://github.com/babel-utils/babel-plugin-tester/issues/84
589589
[37]: https://github.com/babel-utils/babel-plugin-tester/commit/969be117ee279603244d0b413156c7995f403bd1

Diff for: package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "babel-plugin-tester",
3-
"version": "11.0.0-canary.1",
3+
"version": "11.0.0",
44
"description": "Utilities for testing babel plugins",
55
"keywords": [
66
"babel",

0 commit comments

Comments
 (0)