azure-sdk-for-js
azure-sdk-for-js copied to clipboard
[Test Utils] [Recorder] Migrate to esm
Packages impacted by this PR
@azure-tools/test-recorder
Issues associated with this PR
https://github.com/Azure/azure-sdk-for-js/issues/28475
Describe the problem that is addressed by this PR
Migrates @azure-tools/test-recorder
to ESM, supports both vitest and mocha.
What's in the PR
This PR also pulls in @jeremymeng's change to update recorder file path calculation that got reverted https://github.com/Azure/azure-sdk-for-js/pull/28423
One major non-breaking change to env
This involves bumping recorder to 4.0.0, a new major due to the nature of the change.
process.env
is employed in both node and browser vitest with playwright.
- removes dotenv dependency
- env shims for browser
- deletes karma.conf
Exported "env" in 3.1.0 Exported "env" in 4.0.0
node Process.env Process.env
browser Window.__env__ --No shim--
Depends on https://github.com/Azure/azure-sdk-for-js/pull/28917
Exposed sanitizer types
-
Enhanced the
addSanitizers
method andSanitizerOptions
options bag by exposing the following sanitizer types for more flexible usage:-
FindReplaceSanitizer
: A sanitizer that finds and replaces specified strings. -
RegexSanitizer
: A sanitizer that uses regular expressions for pattern matching and replacement. -
StringSanitizer
: A sanitizer that handles string-based sanitization tasks. -
HeaderSanitizer
: A sanitizer specifically designed for handling HTTP headers. -
ConnectionStringSanitizer
: A sanitizer that securely handles connection strings. -
RemoveHeaderSanitizer
: A sanitizer that removes specified headers from HTTP requests or responses.
This update aims to provide users with a more comprehensive and customizable sanitization process.
-
Breaking Changes
-
The
@azure-tools/[email protected]
package now supportsvitest
andplaywright
(stops support formocha
andkarma
), employsprocess.env
in both Node and browser environments. This aligns with the latest testing frameworks and provides improved testing capabilities.- The package has been simplified by removing the
dotenv
dependency and thekarma.conf
file, env shims for the browser. This streamlines the package dependencies and configuration files, respectively. - These changes introduce a new
env
strategy for all SDKs once they migrate to ESM and depend on@azure-tools/test-recorder
version 4, as we employprocess.env
through vitest to access environment variables in both Node and browser environments.
- The package has been simplified by removing the