diff --git a/common/tools/dev-tool/src/config/rollup.base.config.ts b/common/tools/dev-tool/src/config/rollup.base.config.ts index 77095eaea117..37f8d68119d0 100644 --- a/common/tools/dev-tool/src/config/rollup.base.config.ts +++ b/common/tools/dev-tool/src/config/rollup.base.config.ts @@ -5,6 +5,7 @@ import cjs from "@rollup/plugin-commonjs"; import sourcemaps from "rollup-plugin-sourcemaps"; import multiEntry from "@rollup/plugin-multi-entry"; import json from "@rollup/plugin-json"; +import * as path from "path"; import nodeBuiltins from "builtin-modules"; @@ -83,9 +84,16 @@ function ignoreChaiCircularDependencyWarnings(warning: RollupWarning): boolean { ); } +function ignoreOpenTelemetryThisIsUndefinedWarnings(warning: RollupWarning): boolean { + return ( + warning.code === "THIS_IS_UNDEFINED" && warning.id?.includes("@opentelemetry/api") === true + ); +} + const warningInhibitors: Array<(warning: RollupWarning) => boolean> = [ ignoreChaiCircularDependencyWarnings, - ignoreNiseSinonEvalWarnings + ignoreNiseSinonEvalWarnings, + ignoreOpenTelemetryThisIsUndefinedWarnings ]; /** @@ -103,11 +111,16 @@ function makeOnWarnForTesting(): (warning: RollupWarning, warn: WarningHandler) // #endregion -export function makeBrowserTestConfig(): RollupOptions { +export function makeBrowserTestConfig(pkg: PackageJson): RollupOptions { + // ./dist-esm/src/index.js -> ./dist-esm + // ./dist-esm/keyvault-keys/src/index.js -> ./dist-esm/keyvault-keys + const module = pkg["module"] ?? "dist-esm/src/index.js"; + const basePath = path.dirname(path.parse(module).dir); + const config: RollupOptions = { input: { - include: ["dist-esm/test/**/*.spec.js"], - exclude: ["dist-esm/test/**/node/**"] + include: [path.join(basePath, "test", "**", "*.spec.js")], + exclude: [path.join(basePath, "test", "**", "node", "**")] }, output: { file: `dist-test/index.browser.js`, @@ -173,7 +186,7 @@ export function makeConfig(pkg: PackageJson, options?: Partial&1", "build:browser": "tsc -p . && cross-env ONLY_BROWSER=true rollup -c 2>&1", "build:nodebrowser": "rollup -c 2>&1", - "build:test": "tsc -p . && rollup -c rollup.test.config.js 2>&1", + "build:test": "tsc -p . && rollup -c 2>&1", "build": "npm run clean && tsc -p . && npm run build:nodebrowser && api-extractor run --local", "check-format": "prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"", "clean": "rimraf dist dist-* types *.tgz *.log statistics.html coverage && rimraf src/**/*.js && rimraf test/**/*.js", @@ -66,7 +66,7 @@ "test:node": "npm run clean && npm run build:test && npm run unit-test:node", "test": "npm run clean && npm run build:test && npm run unit-test", "unit-test:browser": "echo skipped", - "unit-test:node": "mocha --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 180000 --full-trace \"dist-test/index.node.js\"", + "unit-test:node": "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 180000 --full-trace \"test/{,!(browser)/**/}*.spec.ts\"", "unit-test": "npm run unit-test:node && npm run unit-test:browser", "docs": "typedoc --excludePrivate --excludeNotExported --excludeExternals --stripInternal --mode file --out ./dist/docs ./src" }, @@ -125,11 +125,6 @@ "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", "@microsoft/api-extractor": "^7.18.11", - "@rollup/plugin-commonjs": "11.0.2", - "@rollup/plugin-json": "^4.0.0", - "@rollup/plugin-multi-entry": "^3.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-replace": "^2.2.0", "@types/chai": "^4.1.6", "@types/chai-as-promised": "^7.1.0", "@types/mocha": "^7.0.2", @@ -148,10 +143,6 @@ "prettier": "^1.16.4", "rimraf": "^3.0.0", "rollup": "^1.16.3", - "rollup-plugin-shim": "^1.0.0", - "rollup-plugin-sourcemaps": "^0.4.2", - "rollup-plugin-terser": "^5.1.1", - "rollup-plugin-visualizer": "^4.0.4", "sinon": "^9.0.2", "source-map-support": "^0.5.9", "typedoc": "0.15.2", diff --git a/sdk/keyvault/keyvault-admin/rollup.base.config.js b/sdk/keyvault/keyvault-admin/rollup.base.config.js deleted file mode 100644 index ef81cd92bdb0..000000000000 --- a/sdk/keyvault/keyvault-admin/rollup.base.config.js +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import nodeResolve from "@rollup/plugin-node-resolve"; -import multiEntry from "@rollup/plugin-multi-entry"; -import cjs from "@rollup/plugin-commonjs"; -import replace from "@rollup/plugin-replace"; -import { terser } from "rollup-plugin-terser"; -import sourcemaps from "rollup-plugin-sourcemaps"; -import shim from "rollup-plugin-shim"; -import json from "@rollup/plugin-json"; -import { openTelemetryCommonJs } from "@azure/dev-tool/shared-config/rollup"; - -/** - * @type {import('rollup').RollupFileOptions} - */ - -const pkg = require("./package.json"); -const version = pkg.version; -const banner = [ - "/*!", - " * Copyright (c) Microsoft and contributors. All rights reserved.", - " * Licensed under the MIT License. See License.txt in the project root for", - " * license information.", - " * ", - ` * Azure KeyVault Admin SDK for JavaScript - ${version}`, - " */" -].join("\n"); - -const depNames = Object.keys(pkg.dependencies); -const production = process.env.NODE_ENV === "production"; - -export function nodeConfig(test = false) { - const externalNodeBuiltins = []; - const additionalExternals = []; - const baseConfig = { - input: "dist-esm/keyvault-admin/src/index.js", - external: depNames.concat(externalNodeBuiltins, additionalExternals), - output: { - file: "dist/index.js", - format: "cjs", - name: "azurekeyvaultadmin", - sourcemap: true, - banner: banner - }, - plugins: [ - sourcemaps(), - replace({ - delimiters: ["", ""], - // replace dynamic checks with if (true) since this is for node only. - // Allows rollup's dead code elimination to be more aggressive. - "if (isNode)": "if (true)" - }), - nodeResolve({ preferBuiltins: true }), - cjs({ - namedExports: { - ...openTelemetryCommonJs() - } - }) - ] - }; - - if (test) { - // entry point is every test file - baseConfig.input = ["dist-esm/**/*.spec.js"]; - baseConfig.plugins.unshift( - multiEntry({ exports: false }), - json() // This allows us to import/require the package.json file, to get the version and test it against the user agent. - ); - - // different output file - baseConfig.output.file = "dist-test/index.node.js"; - - baseConfig.external.push("assert", "fs", "path", "chai"); - - baseConfig.context = "null"; - - // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting - // the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also - // applies to test code, which causes all tests to be removed by tree-shaking. - baseConfig.treeshake = false; - } else if (production) { - baseConfig.plugins.push(terser()); - } - - return baseConfig; -} - -export function browserConfig(test = false) { - const baseConfig = { - input: "dist-esm/keyvault-admin/src/index.js", - output: { - file: "dist-browser/azure-keyvault-admin.js", - banner: banner, - format: "umd", - name: "azurekeyvaultadmin", - globals: { - "@azure/core-http": "Azure.Core.HTTP" - }, - sourcemap: true - }, - preserveSymlinks: false, - plugins: [ - sourcemaps(), - replace({ - delimiters: ["", ""], - // replace dynamic checks with if (false) since this is for - // browser only. Rollup's dead code elimination will remove - // any code guarded by if (isNode) { ... } - "if (isNode)": "if (false)" - }), - // os is not used by the browser bundle, so just shim it - shim({ - dotenv: `export function config() { }`, - os: ` - export const type = 1; - export const release = 1; - ` - }), - nodeResolve({ - mainFields: ["module", "browser"], - preferBuiltins: false - }), - cjs({ - namedExports: { - chai: ["assert", "use"], - assert: ["ok", "equal", "strictEqual", "deepEqual", "isRejected"], - ...openTelemetryCommonJs() - } - }) - ] - }; - - if (test) { - baseConfig.input = ["dist-esm/**/*.spec.js"]; - baseConfig.plugins.unshift( - multiEntry({ exports: false }), - json() // This allows us to import/require the package.json file, to get the version and test it against the user agent. - ); - baseConfig.output.file = "dist-test/index.browser.js"; - - baseConfig.external = []; - baseConfig.context = "null"; - - // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting - // the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also - // applies to test code, which causes all tests to be removed by tree-shaking. - baseConfig.treeshake = false; - } - - return baseConfig; -} diff --git a/sdk/keyvault/keyvault-admin/rollup.config.js b/sdk/keyvault/keyvault-admin/rollup.config.js index 5ee6d226a64c..5d7deee44c14 100644 --- a/sdk/keyvault/keyvault-admin/rollup.config.js +++ b/sdk/keyvault/keyvault-admin/rollup.config.js @@ -1,3 +1,3 @@ -import * as base from "./rollup.base.config"; +import { makeConfig } from "@azure/dev-tool/shared-config/rollup"; -export default [base.nodeConfig()]; +export default makeConfig(require("./package.json")); diff --git a/sdk/keyvault/keyvault-admin/rollup.test.config.js b/sdk/keyvault/keyvault-admin/rollup.test.config.js deleted file mode 100644 index ad98718cce46..000000000000 --- a/sdk/keyvault/keyvault-admin/rollup.test.config.js +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as base from "./rollup.base.config"; - -export default [base.nodeConfig(true), base.browserConfig(true)]; diff --git a/sdk/keyvault/keyvault-admin/test/internal/userAgent.spec.ts b/sdk/keyvault/keyvault-admin/test/internal/userAgent.spec.ts index 21c4bae829b1..770d79fd052f 100644 --- a/sdk/keyvault/keyvault-admin/test/internal/userAgent.spec.ts +++ b/sdk/keyvault/keyvault-admin/test/internal/userAgent.spec.ts @@ -23,7 +23,7 @@ describe("Key Vault Admin's user agent (only in Node, because of fs)", function( let version: string; try { const fileContents = JSON.parse( - fs.readFileSync(path.join(__dirname, "../package.json"), { encoding: "utf-8" }) + fs.readFileSync(path.join(__dirname, "../../package.json"), { encoding: "utf-8" }) ); version = fileContents.version; } catch { diff --git a/sdk/keyvault/keyvault-certificates/package.json b/sdk/keyvault/keyvault-certificates/package.json index c7c5cc9bc225..2e55bfa7981b 100644 --- a/sdk/keyvault/keyvault-certificates/package.json +++ b/sdk/keyvault/keyvault-certificates/package.json @@ -44,7 +44,7 @@ "build:node": "tsc -p . && cross-env ONLY_NODE=true rollup -c 2>&1", "build:browser": "tsc -p . && cross-env ONLY_BROWSER=true rollup -c 2>&1", "build:nodebrowser": "rollup -c 2>&1", - "build:test": "tsc -p . && rollup -c rollup.test.config.js 2>&1", + "build:test": "tsc -p . && rollup -c 2>&1", "build": "npm run clean && tsc -p . && npm run build:nodebrowser && api-extractor run --local", "check-format": "prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"", "clean": "rimraf dist-esm dist-test types *.tgz *.log samples/typescript/dist", @@ -63,7 +63,7 @@ "test:node": "npm run clean && npm run build:test && npm run unit-test:node", "test": "npm run clean && npm run build:test && npm run unit-test", "unit-test:browser": "karma start --single-run", - "unit-test:node": "mocha --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 300000 --full-trace \"dist-test/index.node.js\"", + "unit-test:node": "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 300000 --full-trace \"test/{,!(browser)/**/}*.spec.ts\"", "unit-test:node:no-timeout": "mocha --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --no-timeouts --full-trace \"dist-test/index.node.js\"", "unit-test": "npm run unit-test:node && npm run unit-test:browser", "docs": "typedoc --excludePrivate --excludeNotExported --excludeExternals --stripInternal --mode file --out ./dist/docs ./src" diff --git a/sdk/keyvault/keyvault-certificates/rollup.base.config.js b/sdk/keyvault/keyvault-certificates/rollup.base.config.js deleted file mode 100644 index e70c37071814..000000000000 --- a/sdk/keyvault/keyvault-certificates/rollup.base.config.js +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import nodeResolve from "@rollup/plugin-node-resolve"; -import multiEntry from "@rollup/plugin-multi-entry"; -import cjs from "@rollup/plugin-commonjs"; -import json from "@rollup/plugin-json"; -import replace from "@rollup/plugin-replace"; -import { terser } from "rollup-plugin-terser"; -import sourcemaps from "rollup-plugin-sourcemaps"; -import shim from "rollup-plugin-shim"; -import { openTelemetryCommonJs } from "@azure/dev-tool/shared-config/rollup"; - -/** - * @type {import('rollup').RollupFileOptions} - */ - -const pkg = require("./package.json"); -const version = pkg.version; -const banner = [ - "/*!", - " * Copyright (c) Microsoft and contributors. All rights reserved.", - " * Licensed under the MIT License. See License.txt in the project root for", - " * license information.", - " * ", - ` * Azure KeyVault Certificates SDK for JavaScript - ${version}`, - " */" -].join("\n"); - -const depNames = Object.keys(pkg.dependencies); -const production = process.env.NODE_ENV === "production"; - -export function nodeConfig(test = false) { - const externalNodeBuiltins = ["crypto", "fs", "os", "url", "assert"]; - const additionalExternals = ["keytar", "@azure/identity"]; - const baseConfig = { - input: "dist-esm/keyvault-certificates/src/index.js", - external: depNames.concat(externalNodeBuiltins, additionalExternals), - output: { - file: "dist/index.js", - format: "cjs", - name: "azurekeyvaultcertificates", - sourcemap: true, - banner: banner - }, - plugins: [ - sourcemaps(), - replace({ - delimiters: ["", ""], - // replace dynamic checks with if (true) since this is for node only. - // Allows rollup's dead code elimination to be more aggressive. - "if (isNode)": "if (true)" - }), - nodeResolve({ preferBuiltins: true }), - json(), - cjs({ - namedExports: { - ...openTelemetryCommonJs() - } - }) - ] - }; - - if (test) { - // entry point is every test file - baseConfig.input = ["dist-esm/**/*.spec.js"]; - baseConfig.plugins.unshift(multiEntry({ exports: false })); - - // different output file - baseConfig.output.file = "dist-test/index.node.js"; - - baseConfig.external.push("assert", "fs", "os", "path"); - - baseConfig.context = "null"; - - // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting - // the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also - // applies to test code, which causes all tests to be removed by tree-shaking. - baseConfig.treeshake = false; - } else if (production) { - baseConfig.plugins.push(terser()); - } - - return baseConfig; -} - -export function browserConfig(test = false) { - const baseConfig = { - input: "dist-esm/keyvault-certificates/src/index.js", - output: { - file: "dist-browser/azure-keyvault-certificates.js", - banner: banner, - format: "umd", - name: "azurekeyvaultcertificates", - globals: { - "@azure/core-http": "Azure.Core.HTTP", - "@azure/keyvault-keys": "Azure.KeyVault.Keys", - "@azure/keyvault-secrets": "Azure.KeyVault.Secrets" - }, - sourcemap: true - }, - preserveSymlinks: false, - plugins: [ - sourcemaps(), - replace({ - delimiters: ["", ""], - // replace dynamic checks with if (false) since this is for - // browser only. Rollup's dead code elimination will remove - // any code guarded by if (isNode) { ... } - "if (isNode)": "if (false)" - }), - // os is not used by the browser bundle, so just shim it - shim({ - dotenv: `export function config() { }`, - os: ` - export const type = 1; - export const release = 1; - ` - }), - nodeResolve({ - mainFields: ["module", "browser"], - preferBuiltins: false - }), - json(), - cjs({ - namedExports: { - assert: ["ok", "equal", "strictEqual", "deepEqual"], - ...openTelemetryCommonJs() - } - }) - ] - }; - - baseConfig.external = ["fs", "child_process", "path", "crypto", "constants"]; - if (test) { - baseConfig.external.push("os"); - baseConfig.input = ["dist-esm/**/*.spec.js"]; - baseConfig.plugins.unshift(multiEntry({ exports: false })); - baseConfig.output.file = "dist-test/index.browser.js"; - baseConfig.context = "null"; - - // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting - // the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also - // applies to test code, which causes all tests to be removed by tree-shaking. - baseConfig.treeshake = false; - } - - return baseConfig; -} diff --git a/sdk/keyvault/keyvault-certificates/rollup.config.js b/sdk/keyvault/keyvault-certificates/rollup.config.js index 5ee6d226a64c..5d7deee44c14 100644 --- a/sdk/keyvault/keyvault-certificates/rollup.config.js +++ b/sdk/keyvault/keyvault-certificates/rollup.config.js @@ -1,3 +1,3 @@ -import * as base from "./rollup.base.config"; +import { makeConfig } from "@azure/dev-tool/shared-config/rollup"; -export default [base.nodeConfig()]; +export default makeConfig(require("./package.json")); diff --git a/sdk/keyvault/keyvault-certificates/rollup.test.config.js b/sdk/keyvault/keyvault-certificates/rollup.test.config.js deleted file mode 100644 index ad98718cce46..000000000000 --- a/sdk/keyvault/keyvault-certificates/rollup.test.config.js +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as base from "./rollup.base.config"; - -export default [base.nodeConfig(true), base.browserConfig(true)]; diff --git a/sdk/keyvault/keyvault-certificates/test/internal/serviceVersionParameter.spec.ts b/sdk/keyvault/keyvault-certificates/test/internal/serviceVersionParameter.spec.ts index 4bf3476aaf57..760220e35880 100644 --- a/sdk/keyvault/keyvault-certificates/test/internal/serviceVersionParameter.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/internal/serviceVersionParameter.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { createSandbox, SinonSandbox, SinonSpy } from "sinon"; import { CertificateClient } from "../../src"; import { LATEST_API_VERSION } from "../../src/certificatesModels"; diff --git a/sdk/keyvault/keyvault-certificates/test/internal/userAgent.spec.ts b/sdk/keyvault/keyvault-certificates/test/internal/userAgent.spec.ts index bebbeca40b40..63082f17366c 100644 --- a/sdk/keyvault/keyvault-certificates/test/internal/userAgent.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/internal/userAgent.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { SDK_VERSION } from "../../src/constants"; import { packageVersion } from "../../src/generated/keyVaultClientContext"; @@ -23,7 +23,7 @@ describe("Certificates client's user agent (only in Node, because of fs)", () => try { // The unit-test script has this test file at: test/internal/userAgent.spec.ts const fileContents = JSON.parse( - fs.readFileSync(path.join(__dirname, "../package.json"), { encoding: "utf-8" }) + fs.readFileSync(path.join(__dirname, "../../package.json"), { encoding: "utf-8" }) ); version = fileContents.version; } catch { diff --git a/sdk/keyvault/keyvault-certificates/test/public/identifier.spec.ts b/sdk/keyvault/keyvault-certificates/test/public/identifier.spec.ts index e98a883ed9a3..9e522d8de484 100644 --- a/sdk/keyvault/keyvault-certificates/test/public/identifier.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/public/identifier.spec.ts @@ -2,7 +2,7 @@ // Licensed under the MIT license. import { parseKeyVaultCertificateIdentifier } from "../../src/identifier"; -import * as assert from "assert"; +import { assert } from "chai"; describe("Key Vault Certificates Identifier", () => { it("It should work with a URI of a certificate before it gets a version", async function() { diff --git a/sdk/keyvault/keyvault-certificates/test/public/list.spec.ts b/sdk/keyvault/keyvault-certificates/test/public/list.spec.ts index 6451aeacbd9b..370e061e4e80 100644 --- a/sdk/keyvault/keyvault-certificates/test/public/list.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/public/list.spec.ts @@ -3,7 +3,7 @@ import chai from "chai"; import { Context } from "mocha"; -import * as assert from "assert"; +import { assert } from "chai"; import { env, isPlaybackMode, Recorder, isRecordMode } from "@azure-tools/test-recorder"; import { isNode } from "@azure/core-http"; diff --git a/sdk/keyvault/keyvault-certificates/test/public/lro.create.spec.ts b/sdk/keyvault/keyvault-certificates/test/public/lro.create.spec.ts index 8b3fa6c73309..0201bb57b55b 100644 --- a/sdk/keyvault/keyvault-certificates/test/public/lro.create.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/public/lro.create.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { PollerStoppedError } from "@azure/core-lro"; import { env, Recorder } from "@azure-tools/test-recorder"; diff --git a/sdk/keyvault/keyvault-certificates/test/public/lro.delete.spec.ts b/sdk/keyvault/keyvault-certificates/test/public/lro.delete.spec.ts index 2eb348b52c9b..781fdc4ee4b0 100644 --- a/sdk/keyvault/keyvault-certificates/test/public/lro.delete.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/public/lro.delete.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { PollerStoppedError } from "@azure/core-lro"; import { env, Recorder } from "@azure-tools/test-recorder"; diff --git a/sdk/keyvault/keyvault-certificates/test/public/lro.operation.spec.ts b/sdk/keyvault/keyvault-certificates/test/public/lro.operation.spec.ts index 5d6fa5630287..335889cc13ed 100644 --- a/sdk/keyvault/keyvault-certificates/test/public/lro.operation.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/public/lro.operation.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, Recorder } from "@azure-tools/test-recorder"; diff --git a/sdk/keyvault/keyvault-certificates/test/public/lro.recover.spec.ts b/sdk/keyvault/keyvault-certificates/test/public/lro.recover.spec.ts index c0991a27e125..5b793c86e2d2 100644 --- a/sdk/keyvault/keyvault-certificates/test/public/lro.recover.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/public/lro.recover.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, Recorder } from "@azure-tools/test-recorder"; import { PollerStoppedError } from "@azure/core-lro"; diff --git a/sdk/keyvault/keyvault-certificates/test/public/recoverBackupRestore.spec.ts b/sdk/keyvault/keyvault-certificates/test/public/recoverBackupRestore.spec.ts index a9bc4db0dd5c..91724be11b28 100644 --- a/sdk/keyvault/keyvault-certificates/test/public/recoverBackupRestore.spec.ts +++ b/sdk/keyvault/keyvault-certificates/test/public/recoverBackupRestore.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, isPlaybackMode, Recorder, isRecordMode } from "@azure-tools/test-recorder"; import { isNode } from "@azure/core-http"; diff --git a/sdk/keyvault/keyvault-certificates/test/utils/utils.common.ts b/sdk/keyvault/keyvault-certificates/test/utils/utils.common.ts index 9e357729a6bf..3288595137da 100644 --- a/sdk/keyvault/keyvault-certificates/test/utils/utils.common.ts +++ b/sdk/keyvault/keyvault-certificates/test/utils/utils.common.ts @@ -2,7 +2,7 @@ // Licensed under the MIT license. import { env } from "@azure-tools/test-recorder"; -import * as assert from "assert"; +import { assert } from "chai"; export function getKeyvaultName(): string { const keyVaultEnvVarName = "KEYVAULT_NAME"; diff --git a/sdk/keyvault/keyvault-keys/package.json b/sdk/keyvault/keyvault-keys/package.json index 81833a556ba1..5413d2575a96 100644 --- a/sdk/keyvault/keyvault-keys/package.json +++ b/sdk/keyvault/keyvault-keys/package.json @@ -48,7 +48,7 @@ "build:node": "tsc -p . && cross-env ONLY_NODE=true rollup -c 2>&1", "build:browser": "tsc -p . && cross-env ONLY_BROWSER=true rollup -c 2>&1", "build:nodebrowser": "rollup -c 2>&1", - "build:test": "tsc -p . && rollup -c rollup.test.config.js 2>&1", + "build:test": "tsc -p . && rollup -c 2>&1", "build": "npm run clean && tsc -p . && npm run build:nodebrowser && api-extractor run --local", "check-format": "prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"", "clean": "rimraf dist dist-* types *.tgz *.log dist-browser statistics.html coverage && rimraf src/**/*.js && rimraf test/**/*.js", @@ -67,7 +67,7 @@ "test:node": "npm run clean && npm run build:test && npm run unit-test:node", "test": "npm run clean && npm run build:test && npm run unit-test", "unit-test:browser": "karma start --single-run", - "unit-test:node": "mocha --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 180000 --full-trace \"dist-test/index.node.js\"", + "unit-test:node": "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 180000 --full-trace \"test/{,!(browser)/**/}*.spec.ts\"", "unit-test:node:no-timeout": "mocha --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --no-timeouts --full-trace \"dist-test/index.node.js\"", "unit-test": "npm run unit-test:node && npm run unit-test:browser", "docs": "typedoc --excludePrivate --excludeNotExported --excludeExternals --stripInternal --mode file --out ./dist/docs ./src" @@ -118,17 +118,11 @@ "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", "@microsoft/api-extractor": "^7.18.11", - "@rollup/plugin-commonjs": "11.0.2", - "@rollup/plugin-json": "^4.0.0", - "@rollup/plugin-multi-entry": "^3.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-replace": "^2.2.0", "@types/chai": "^4.1.6", "@types/chai-as-promised": "^7.1.0", "@types/mocha": "^7.0.2", "@types/node": "^12.0.0", "@types/sinon": "^9.0.4", - "assert": "^1.4.1", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "chai-exclude": "^2.0.2", @@ -157,10 +151,6 @@ "puppeteer": "^10.2.0", "rimraf": "^3.0.0", "rollup": "^1.16.3", - "rollup-plugin-shim": "^1.0.0", - "rollup-plugin-sourcemaps": "^0.4.2", - "rollup-plugin-terser": "^5.1.1", - "rollup-plugin-visualizer": "^4.0.4", "sinon": "^9.0.2", "source-map-support": "^0.5.9", "typescript": "~4.2.0", diff --git a/sdk/keyvault/keyvault-keys/rollup.base.config.js b/sdk/keyvault/keyvault-keys/rollup.base.config.js deleted file mode 100644 index ba1b14f33537..000000000000 --- a/sdk/keyvault/keyvault-keys/rollup.base.config.js +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import nodeResolve from "@rollup/plugin-node-resolve"; -import multiEntry from "@rollup/plugin-multi-entry"; -import cjs from "@rollup/plugin-commonjs"; -import json from "@rollup/plugin-json"; -import replace from "@rollup/plugin-replace"; -import { terser } from "rollup-plugin-terser"; -import sourcemaps from "rollup-plugin-sourcemaps"; -import shim from "rollup-plugin-shim"; -import { openTelemetryCommonJs } from "@azure/dev-tool/shared-config/rollup"; - -/** - * @type {import('rollup').RollupFileOptions} - */ - -const pkg = require("./package.json"); -const version = pkg.version; -const banner = [ - "/*!", - " * Copyright (c) Microsoft and contributors. All rights reserved.", - " * Licensed under the MIT License. See License.txt in the project root for", - " * license information.", - " * ", - ` * Azure KeyVault Keys SDK for JavaScript - ${version}`, - " */" -].join("\n"); - -const depNames = Object.keys(pkg.dependencies); -const devDepNames = Object.keys(pkg.devDependencies); -const production = process.env.NODE_ENV === "production"; - -export function nodeConfig(test = false) { - const externalNodeBuiltins = ["crypto", "fs", "os", "url", "assert", "chai", "constants"]; - const additionalExternals = ["keytar"]; - const baseConfig = { - input: "dist-esm/keyvault-keys/src/index.js", - external: depNames.concat(externalNodeBuiltins, additionalExternals), - output: { - file: "dist/index.js", - format: "cjs", - name: "azurekeyvaultkeys", - sourcemap: true, - banner: banner - }, - plugins: [ - sourcemaps(), - replace({ - delimiters: ["", ""], - // replace dynamic checks with if (true) since this is for node only. - // Allows rollup's dead code elimination to be more aggressive. - "if (isNode)": "if (true)" - }), - nodeResolve({ preferBuiltins: true }), - json(), - cjs({ - namedExports: { - ...openTelemetryCommonJs() - } - }) - ] - }; - - if (test) { - // entry point is every test file - baseConfig.input = ["dist-esm/**/*.spec.js"]; - baseConfig.plugins.unshift(multiEntry({ exports: false })); - - // different output file - baseConfig.output.file = "dist-test/index.node.js"; - - baseConfig.external.push(...devDepNames); - - baseConfig.context = "null"; - - // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting - // the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also - // applies to test code, which causes all tests to be removed by tree-shaking. - baseConfig.treeshake = false; - } else if (production) { - baseConfig.plugins.push(terser()); - } - - return baseConfig; -} - -export function browserConfig(test = false) { - const baseConfig = { - input: "dist-esm/keyvault-keys/src/index.js", - output: { - file: "dist-browser/azure-keyvault-keys.js", - banner: banner, - format: "umd", - name: "azurekeyvaultkeys", - globals: { - "@azure/core-http": "Azure.Core.HTTP" - }, - sourcemap: true - }, - preserveSymlinks: false, - plugins: [ - sourcemaps(), - replace({ - delimiters: ["", ""], - // replace dynamic checks with if (false) since this is for - // browser only. Rollup's dead code elimination will remove - // any code guarded by if (isNode) { ... } - "if (isNode)": "if (false)" - }), - // os is not used by the browser bundle, so just shim it - shim({ - dotenv: `export function config() { }`, - os: ` - export const type = 1; - export const release = 1; - ` - }), - nodeResolve({ - mainFields: ["module", "browser"], - preferBuiltins: false - }), - json(), - cjs({ - namedExports: { - chai: ["assert", "use"], - assert: ["ok", "equal", "strictEqual", "deepEqual", "throws", "isRejected"], - ...openTelemetryCommonJs() - } - }) - ] - }; - - baseConfig.external = ["path"]; - if (test) { - baseConfig.input = ["dist-esm/**/*.spec.js"]; - baseConfig.plugins.unshift(multiEntry({ exports: false })); - baseConfig.output.file = "dist-test/index.browser.js"; - - baseConfig.context = "null"; - - // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting - // the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also - // applies to test code, which causes all tests to be removed by tree-shaking. - baseConfig.treeshake = false; - } - - return baseConfig; -} diff --git a/sdk/keyvault/keyvault-keys/rollup.config.js b/sdk/keyvault/keyvault-keys/rollup.config.js index 5ee6d226a64c..5d7deee44c14 100644 --- a/sdk/keyvault/keyvault-keys/rollup.config.js +++ b/sdk/keyvault/keyvault-keys/rollup.config.js @@ -1,3 +1,3 @@ -import * as base from "./rollup.base.config"; +import { makeConfig } from "@azure/dev-tool/shared-config/rollup"; -export default [base.nodeConfig()]; +export default makeConfig(require("./package.json")); diff --git a/sdk/keyvault/keyvault-keys/rollup.test.config.js b/sdk/keyvault/keyvault-keys/rollup.test.config.js deleted file mode 100644 index ad98718cce46..000000000000 --- a/sdk/keyvault/keyvault-keys/rollup.test.config.js +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as base from "./rollup.base.config"; - -export default [base.nodeConfig(true), base.browserConfig(true)]; diff --git a/sdk/keyvault/keyvault-keys/test/internal/serviceVersionParameter.spec.ts b/sdk/keyvault/keyvault-keys/test/internal/serviceVersionParameter.spec.ts index 7c3074cfb065..9917610553e3 100644 --- a/sdk/keyvault/keyvault-keys/test/internal/serviceVersionParameter.spec.ts +++ b/sdk/keyvault/keyvault-keys/test/internal/serviceVersionParameter.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { createSandbox, SinonSandbox, SinonSpy } from "sinon"; import { KeyClient } from "../../src"; import { LATEST_API_VERSION } from "../../src/keysModels"; diff --git a/sdk/keyvault/keyvault-keys/test/internal/userAgent.spec.ts b/sdk/keyvault/keyvault-keys/test/internal/userAgent.spec.ts index 948928d1595e..96b4dc4632c8 100644 --- a/sdk/keyvault/keyvault-keys/test/internal/userAgent.spec.ts +++ b/sdk/keyvault/keyvault-keys/test/internal/userAgent.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { SDK_VERSION } from "../../src/constants"; import { packageVersion } from "../../src/generated/keyVaultClientContext"; @@ -23,7 +23,7 @@ describe("Keys client's user agent (only in Node, because of fs)", () => { try { // The unit-test script has this test file at: test/internal/userAgent.spec.ts const fileContents = JSON.parse( - fs.readFileSync(path.join(__dirname, "../package.json"), { encoding: "utf-8" }) + fs.readFileSync(path.join(__dirname, "../../package.json"), { encoding: "utf-8" }) ); version = fileContents.version; } catch { diff --git a/sdk/keyvault/keyvault-keys/test/public/identifier.spec.ts b/sdk/keyvault/keyvault-keys/test/public/identifier.spec.ts index d6fb877b9163..15ceb0a655c2 100644 --- a/sdk/keyvault/keyvault-keys/test/public/identifier.spec.ts +++ b/sdk/keyvault/keyvault-keys/test/public/identifier.spec.ts @@ -2,7 +2,7 @@ // Licensed under the MIT license. import { parseKeyVaultKeyIdentifier } from "../../src/identifier"; -import * as assert from "assert"; +import { assert } from "chai"; describe("Key Vault Keys Identifier", () => { it("It should work with a URI of a key before it gets a version", async function() { diff --git a/sdk/keyvault/keyvault-keys/test/public/import.spec.ts b/sdk/keyvault/keyvault-keys/test/public/import.spec.ts index f70f785c2bf6..807aa42a42f3 100644 --- a/sdk/keyvault/keyvault-keys/test/public/import.spec.ts +++ b/sdk/keyvault/keyvault-keys/test/public/import.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, Recorder } from "@azure-tools/test-recorder"; diff --git a/sdk/keyvault/keyvault-keys/test/public/list.spec.ts b/sdk/keyvault/keyvault-keys/test/public/list.spec.ts index 4a09a363ba2c..2b826d792e7d 100644 --- a/sdk/keyvault/keyvault-keys/test/public/list.spec.ts +++ b/sdk/keyvault/keyvault-keys/test/public/list.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, Recorder, isRecordMode } from "@azure-tools/test-recorder"; diff --git a/sdk/keyvault/keyvault-keys/test/public/lro.delete.spec.ts b/sdk/keyvault/keyvault-keys/test/public/lro.delete.spec.ts index 0d0d66a79c2b..ab6d4be6ed33 100644 --- a/sdk/keyvault/keyvault-keys/test/public/lro.delete.spec.ts +++ b/sdk/keyvault/keyvault-keys/test/public/lro.delete.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, Recorder } from "@azure-tools/test-recorder"; import { PollerStoppedError } from "@azure/core-lro"; diff --git a/sdk/keyvault/keyvault-keys/test/public/lro.recoverDelete.spec.ts b/sdk/keyvault/keyvault-keys/test/public/lro.recoverDelete.spec.ts index 1af1b21cfeb4..c6648a737524 100644 --- a/sdk/keyvault/keyvault-keys/test/public/lro.recoverDelete.spec.ts +++ b/sdk/keyvault/keyvault-keys/test/public/lro.recoverDelete.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, Recorder } from "@azure-tools/test-recorder"; import { PollerStoppedError } from "@azure/core-lro"; diff --git a/sdk/keyvault/keyvault-keys/test/public/recoverBackupRestore.spec.ts b/sdk/keyvault/keyvault-keys/test/public/recoverBackupRestore.spec.ts index f15aaf5d7f2e..89cab77c505d 100644 --- a/sdk/keyvault/keyvault-keys/test/public/recoverBackupRestore.spec.ts +++ b/sdk/keyvault/keyvault-keys/test/public/recoverBackupRestore.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { isNode } from "@azure/core-http"; import { KeyClient } from "../../src"; diff --git a/sdk/keyvault/keyvault-keys/test/utils/utils.common.ts b/sdk/keyvault/keyvault-keys/test/utils/utils.common.ts index 7ee23ad02817..0c181f7774ef 100644 --- a/sdk/keyvault/keyvault-keys/test/utils/utils.common.ts +++ b/sdk/keyvault/keyvault-keys/test/utils/utils.common.ts @@ -3,7 +3,7 @@ import { SupportedVersions, supports, TestFunctionWrapper } from "@azure/test-utils"; import { env } from "@azure-tools/test-recorder"; -import * as assert from "assert"; +import { assert } from "chai"; import { LATEST_API_VERSION } from "../../src/keysModels"; export function getKeyvaultName(): string { diff --git a/sdk/keyvault/keyvault-secrets/package.json b/sdk/keyvault/keyvault-secrets/package.json index 905f87ddb873..10329625d17d 100644 --- a/sdk/keyvault/keyvault-secrets/package.json +++ b/sdk/keyvault/keyvault-secrets/package.json @@ -44,7 +44,7 @@ "build:node": "tsc -p . && cross-env ONLY_NODE=true rollup -c 2>&1", "build:nodebrowser": "rollup -c 2>&1", "build:browser": "tsc -p . && cross-env ONLY_BROWSER=true rollup -c 2>&1", - "build:test": "tsc -p . && rollup -c rollup.test.config.js 2>&1", + "build:test": "tsc -p . && rollup -c 2>&1", "build": "npm run clean && tsc -p . && npm run build:nodebrowser && api-extractor run --local", "check-format": "prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"", "clean": "rimraf dist dist-* types *.tgz *.log dist-browser statistics.html coverage && rimraf src/**/*.js && rimraf test/**/*.js", @@ -63,7 +63,7 @@ "test:node": "npm run clean && npm run build:test && npm run unit-test:node", "test": "npm run clean && npm run build:test && npm run unit-test", "unit-test:browser": "karma start --single-run", - "unit-test:node": "mocha --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 250000 --full-trace \"dist-test/index.node.js\"", + "unit-test:node": "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 250000 --full-trace \"test/{,!(browser)/**/}*.spec.ts\"", "unit-test:node:no-timeout": "mocha --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --no-timeouts --full-trace \"dist-test/index.node.js\"", "unit-test": "npm run unit-test:node && npm run unit-test:browser", "docs": "typedoc --excludePrivate --excludeNotExported --excludeExternals --stripInternal --mode file --out ./dist/docs ./src" diff --git a/sdk/keyvault/keyvault-secrets/rollup.base.config.js b/sdk/keyvault/keyvault-secrets/rollup.base.config.js deleted file mode 100644 index e9ed07f3596c..000000000000 --- a/sdk/keyvault/keyvault-secrets/rollup.base.config.js +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import nodeResolve from "@rollup/plugin-node-resolve"; -import multiEntry from "@rollup/plugin-multi-entry"; -import cjs from "@rollup/plugin-commonjs"; -import json from "@rollup/plugin-json"; -import replace from "@rollup/plugin-replace"; -import { terser } from "rollup-plugin-terser"; -import sourcemaps from "rollup-plugin-sourcemaps"; -import shim from "rollup-plugin-shim"; -import { openTelemetryCommonJs } from "@azure/dev-tool/shared-config/rollup"; - -/** - * @type {import('rollup').RollupFileOptions} - */ - -const pkg = require("./package.json"); -const version = pkg.version; -const banner = [ - "/*!", - " * Copyright (c) Microsoft and contributors. All rights reserved.", - " * Licensed under the MIT License. See License.txt in the project root for", - " * license information.", - " * ", - ` * Azure KeyVault Secrets SDK for JavaScript - ${version}`, - " */" -].join("\n"); - -const depNames = Object.keys(pkg.dependencies); -const devDepNames = Object.keys(pkg.devDependencies); -const production = process.env.NODE_ENV === "production"; - -export function nodeConfig(test = false) { - const externalNodeBuiltins = ["crypto", "fs", "os", "url", "assert"]; - const additionalExternals = ["keytar", "@azure/identity"]; - const baseConfig = { - input: "dist-esm/keyvault-secrets/src/index.js", - external: depNames.concat(externalNodeBuiltins, additionalExternals), - output: { - file: "dist/index.js", - format: "cjs", - name: "azurekeyvaultsecrets", - sourcemap: true, - banner: banner - }, - plugins: [ - sourcemaps(), - replace({ - delimiters: ["", ""], - // replace dynamic checks with if (true) since this is for node only. - // Allows rollup's dead code elimination to be more aggressive. - "if (isNode)": "if (true)" - }), - nodeResolve({ preferBuiltins: true }), - json(), - cjs({ - namedExports: { - ...openTelemetryCommonJs() - } - }) - ] - }; - - if (test) { - // entry point is every test file - baseConfig.input = ["dist-esm/**/*.spec.js"]; - baseConfig.plugins.unshift(multiEntry({ exports: false })); - - // different output file - baseConfig.output.file = "dist-test/index.node.js"; - - baseConfig.external.push(...devDepNames); - - baseConfig.context = "null"; - - // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting - // the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also - // applies to test code, which causes all tests to be removed by tree-shaking. - baseConfig.treeshake = false; - } else if (production) { - baseConfig.plugins.push(terser()); - } - - return baseConfig; -} - -export function browserConfig(test = false) { - const baseConfig = { - input: "dist-esm/keyvault-secrets/src/index.js", - output: { - file: "dist-browser/azure-keyvault-secrets.js", - banner: banner, - format: "umd", - name: "azurekeyvaultsecrets", - globals: { - "@azure/core-http": "Azure.Core.HTTP" - }, - sourcemap: true - }, - preserveSymlinks: false, - plugins: [ - sourcemaps(), - replace({ - delimiters: ["", ""], - // replace dynamic checks with if (false) since this is for - // browser only. Rollup's dead code elimination will remove - // any code guarded by if (isNode) { ... } - "if (isNode)": "if (false)" - }), - // os is not used by the browser bundle, so just shim it - shim({ - dotenv: `export function config() { }`, - os: ` - export const type = 1; - export const release = 1; - ` - }), - nodeResolve({ - mainFields: ["module", "browser"], - preferBuiltins: false - }), - json(), - cjs({ - namedExports: { - chai: ["assert"], - assert: ["ok", "equal", "strictEqual", "deepEqual", "exists"], - ...openTelemetryCommonJs() - } - }) - ] - }; - - if (test) { - baseConfig.input = ["dist-esm/**/*.spec.js"]; - baseConfig.plugins.unshift(multiEntry({ exports: false })); - baseConfig.output.file = "dist-test/index.browser.js"; - - baseConfig.external = ["path"]; - baseConfig.context = "null"; - - // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting - // the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also - // applies to test code, which causes all tests to be removed by tree-shaking. - baseConfig.treeshake = false; - } - - return baseConfig; -} diff --git a/sdk/keyvault/keyvault-secrets/rollup.config.js b/sdk/keyvault/keyvault-secrets/rollup.config.js index 5ee6d226a64c..5d7deee44c14 100644 --- a/sdk/keyvault/keyvault-secrets/rollup.config.js +++ b/sdk/keyvault/keyvault-secrets/rollup.config.js @@ -1,3 +1,3 @@ -import * as base from "./rollup.base.config"; +import { makeConfig } from "@azure/dev-tool/shared-config/rollup"; -export default [base.nodeConfig()]; +export default makeConfig(require("./package.json")); diff --git a/sdk/keyvault/keyvault-secrets/rollup.test.config.js b/sdk/keyvault/keyvault-secrets/rollup.test.config.js deleted file mode 100644 index ad98718cce46..000000000000 --- a/sdk/keyvault/keyvault-secrets/rollup.test.config.js +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as base from "./rollup.base.config"; - -export default [base.nodeConfig(true), base.browserConfig(true)]; diff --git a/sdk/keyvault/keyvault-secrets/test/internal/serviceVersionParameter.spec.ts b/sdk/keyvault/keyvault-secrets/test/internal/serviceVersionParameter.spec.ts index 984371cfddbe..d3d0c13d485c 100644 --- a/sdk/keyvault/keyvault-secrets/test/internal/serviceVersionParameter.spec.ts +++ b/sdk/keyvault/keyvault-secrets/test/internal/serviceVersionParameter.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { createSandbox, SinonSandbox, SinonSpy } from "sinon"; import { SecretClient } from "../../src"; import { LATEST_API_VERSION } from "../../src/secretsModels"; diff --git a/sdk/keyvault/keyvault-secrets/test/internal/userAgent.spec.ts b/sdk/keyvault/keyvault-secrets/test/internal/userAgent.spec.ts index 97b67914b13a..21e810c77ae9 100644 --- a/sdk/keyvault/keyvault-secrets/test/internal/userAgent.spec.ts +++ b/sdk/keyvault/keyvault-secrets/test/internal/userAgent.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { SDK_VERSION } from "../../src/constants"; import { packageVersion } from "../../src/generated/keyVaultClientContext"; @@ -23,7 +23,7 @@ describe("Secrets client's user agent (only in Node, because of fs)", () => { try { // The unit-test script has this test file at: test/internal/userAgent.spec.ts const fileContents = JSON.parse( - fs.readFileSync(path.join(__dirname, "../package.json"), { encoding: "utf-8" }) + fs.readFileSync(path.join(__dirname, "../../package.json"), { encoding: "utf-8" }) ); version = fileContents.version; } catch { diff --git a/sdk/keyvault/keyvault-secrets/test/public/identifier.spec.ts b/sdk/keyvault/keyvault-secrets/test/public/identifier.spec.ts index 08075cbec536..60d952d7b6f9 100644 --- a/sdk/keyvault/keyvault-secrets/test/public/identifier.spec.ts +++ b/sdk/keyvault/keyvault-secrets/test/public/identifier.spec.ts @@ -2,7 +2,7 @@ // Licensed under the MIT license. import { parseKeyVaultSecretIdentifier } from "../../src/identifier"; -import * as assert from "assert"; +import { assert } from "chai"; describe("Key Vault Secrets Identifier", () => { it("It should work with a URI of a secret before it gets a version", async function() { diff --git a/sdk/keyvault/keyvault-secrets/test/public/list.spec.ts b/sdk/keyvault/keyvault-secrets/test/public/list.spec.ts index 16674c84f0a5..273dfe32b163 100644 --- a/sdk/keyvault/keyvault-secrets/test/public/list.spec.ts +++ b/sdk/keyvault/keyvault-secrets/test/public/list.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import chai from "chai"; import { env, Recorder, isRecordMode } from "@azure-tools/test-recorder"; diff --git a/sdk/keyvault/keyvault-secrets/test/public/lro.delete.spec.ts b/sdk/keyvault/keyvault-secrets/test/public/lro.delete.spec.ts index dbc3b9bdbc84..e66f83e1c08a 100644 --- a/sdk/keyvault/keyvault-secrets/test/public/lro.delete.spec.ts +++ b/sdk/keyvault/keyvault-secrets/test/public/lro.delete.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, Recorder } from "@azure-tools/test-recorder"; import { PollerStoppedError } from "@azure/core-lro"; diff --git a/sdk/keyvault/keyvault-secrets/test/public/lro.recover.spec.ts b/sdk/keyvault/keyvault-secrets/test/public/lro.recover.spec.ts index edb3f63fc32d..843a23c93fbe 100644 --- a/sdk/keyvault/keyvault-secrets/test/public/lro.recover.spec.ts +++ b/sdk/keyvault/keyvault-secrets/test/public/lro.recover.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { env, Recorder } from "@azure-tools/test-recorder"; import { PollerStoppedError } from "@azure/core-lro"; diff --git a/sdk/keyvault/keyvault-secrets/test/public/recoverBackupRestore.spec.ts b/sdk/keyvault/keyvault-secrets/test/public/recoverBackupRestore.spec.ts index 2d6bd8cabd50..3c5fadaf5cf2 100644 --- a/sdk/keyvault/keyvault-secrets/test/public/recoverBackupRestore.spec.ts +++ b/sdk/keyvault/keyvault-secrets/test/public/recoverBackupRestore.spec.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; import { Context } from "mocha"; import { isNode } from "@azure/core-http"; import { env, isPlaybackMode, Recorder, isRecordMode } from "@azure-tools/test-recorder"; diff --git a/sdk/keyvault/keyvault-secrets/test/utils/utils.common.ts b/sdk/keyvault/keyvault-secrets/test/utils/utils.common.ts index 1b65fd67ad31..f646646edee3 100644 --- a/sdk/keyvault/keyvault-secrets/test/utils/utils.common.ts +++ b/sdk/keyvault/keyvault-secrets/test/utils/utils.common.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import * as assert from "assert"; +import { assert } from "chai"; export async function assertThrowsAbortError(cb: () => Promise): Promise { let passed = false; diff --git a/sdk/schemaregistry/schema-registry-avro/rollup.patched.config.js b/sdk/schemaregistry/schema-registry-avro/rollup.patched.config.js index efe1051e30e6..af2c651c5dff 100644 --- a/sdk/schemaregistry/schema-registry-avro/rollup.patched.config.js +++ b/sdk/schemaregistry/schema-registry-avro/rollup.patched.config.js @@ -12,7 +12,7 @@ import shim from "rollup-plugin-shim"; import { makeBrowserTestConfig } from "@azure/dev-tool/shared-config/rollup"; export function makeBrowserTestConfigPatchProcess() { - const config = { ...makeBrowserTestConfig() }; + const config = { ...makeBrowserTestConfig(require("./package.json")) }; config.plugins.push( replace({ delimiters: ["", ""],