azure-sdk-for-js icon indicating copy to clipboard operation
azure-sdk-for-js copied to clipboard

[Test Utils] [Recorder] Migrate to esm

Open HarshaNalluru opened this issue 1 year ago • 2 comments

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 and SanitizerOptions 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 supports vitest and playwright (stops support for mocha and karma), employs process.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 the karma.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 employ process.env through vitest to access environment variables in both Node and browser environments.

HarshaNalluru avatar Feb 27 '24 00:02 HarshaNalluru