@azure-rest/load-testing 1.1.0-beta.1 → 1.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/LICENSE +1 -1
- package/README.md +12 -13
- package/dist/browser/azureLoadTesting.js +14 -12
- package/dist/browser/azureLoadTesting.js.map +1 -1
- package/dist/browser/clientDefinitions.d.ts +66 -34
- package/dist/browser/clientDefinitions.js.map +1 -1
- package/dist/browser/getFileValidationPoller.js +16 -11
- package/dist/browser/getFileValidationPoller.js.map +1 -1
- package/dist/browser/getTestProfileRunCompletionPoller.js +16 -11
- package/dist/browser/getTestProfileRunCompletionPoller.js.map +1 -1
- package/dist/browser/getTestRunCompletionPoller.js +16 -11
- package/dist/browser/getTestRunCompletionPoller.js.map +1 -1
- package/dist/browser/index.d.ts +6 -6
- package/dist/browser/index.js +1 -7
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/isUnexpected.d.ts +15 -9
- package/dist/browser/isUnexpected.js +21 -13
- package/dist/browser/isUnexpected.js.map +1 -1
- package/dist/browser/models.d.ts +205 -172
- package/dist/browser/models.js.map +1 -1
- package/dist/browser/outputModels.d.ts +290 -208
- package/dist/browser/outputModels.js.map +1 -1
- package/dist/browser/paginateHelper.js +43 -73
- package/dist/browser/paginateHelper.js.map +1 -1
- package/dist/browser/parameters.d.ts +107 -66
- package/dist/browser/parameters.js.map +1 -1
- package/dist/browser/pollingHelper.d.ts +82 -4
- package/dist/browser/pollingHelper.js +119 -15
- package/dist/browser/pollingHelper.js.map +1 -1
- package/dist/browser/responses.d.ts +234 -121
- package/dist/browser/responses.js.map +1 -1
- package/dist/commonjs/azureLoadTesting.js +53 -45
- package/dist/commonjs/azureLoadTesting.js.map +7 -1
- package/dist/commonjs/clientDefinitions.d.ts +66 -34
- package/dist/commonjs/clientDefinitions.js +15 -5
- package/dist/commonjs/clientDefinitions.js.map +7 -1
- package/dist/commonjs/getFileValidationPoller.js +151 -137
- package/dist/commonjs/getFileValidationPoller.js.map +7 -1
- package/dist/commonjs/getTestProfileRunCompletionPoller.js +139 -127
- package/dist/commonjs/getTestProfileRunCompletionPoller.js.map +7 -1
- package/dist/commonjs/getTestRunCompletionPoller.js +139 -125
- package/dist/commonjs/getTestRunCompletionPoller.js.map +7 -1
- package/dist/commonjs/index.d.ts +6 -6
- package/dist/commonjs/index.js +46 -20
- package/dist/commonjs/index.js.map +7 -1
- package/dist/commonjs/isUnexpected.d.ts +15 -9
- package/dist/commonjs/isUnexpected.js +118 -105
- package/dist/commonjs/isUnexpected.js.map +7 -1
- package/dist/commonjs/logger.js +28 -8
- package/dist/commonjs/logger.js.map +7 -1
- package/dist/commonjs/models.d.ts +205 -172
- package/dist/commonjs/models.js +15 -5
- package/dist/commonjs/models.js.map +7 -1
- package/dist/commonjs/outputModels.d.ts +290 -208
- package/dist/commonjs/outputModels.js +15 -5
- package/dist/commonjs/outputModels.js.map +7 -1
- package/dist/commonjs/paginateHelper.js +118 -158
- package/dist/commonjs/paginateHelper.js.map +7 -1
- package/dist/commonjs/parameters.d.ts +107 -66
- package/dist/commonjs/parameters.js +15 -5
- package/dist/commonjs/parameters.js.map +7 -1
- package/dist/commonjs/pollingHelper.d.ts +82 -4
- package/dist/commonjs/pollingHelper.js +143 -24
- package/dist/commonjs/pollingHelper.js.map +7 -1
- package/dist/commonjs/responses.d.ts +234 -121
- package/dist/commonjs/responses.js +15 -5
- package/dist/commonjs/responses.js.map +7 -1
- package/dist/commonjs/tsdoc-metadata.json +11 -11
- package/dist/commonjs/util/LROUtil.js +76 -54
- package/dist/commonjs/util/LROUtil.js.map +7 -1
- package/dist/esm/azureLoadTesting.js +32 -40
- package/dist/esm/azureLoadTesting.js.map +7 -1
- package/dist/esm/clientDefinitions.d.ts +66 -34
- package/dist/esm/clientDefinitions.js +0 -4
- package/dist/esm/clientDefinitions.js.map +7 -1
- package/dist/esm/getFileValidationPoller.js +126 -132
- package/dist/esm/getFileValidationPoller.js.map +7 -1
- package/dist/esm/getTestProfileRunCompletionPoller.js +114 -122
- package/dist/esm/getTestProfileRunCompletionPoller.js.map +7 -1
- package/dist/esm/getTestRunCompletionPoller.js +114 -120
- package/dist/esm/getTestRunCompletionPoller.js.map +7 -1
- package/dist/esm/index.d.ts +6 -6
- package/dist/esm/index.js +5 -11
- package/dist/esm/index.js.map +7 -1
- package/dist/esm/isUnexpected.d.ts +15 -9
- package/dist/esm/isUnexpected.js +96 -103
- package/dist/esm/isUnexpected.js.map +7 -1
- package/dist/esm/logger.js +4 -4
- package/dist/esm/logger.js.map +7 -1
- package/dist/esm/models.d.ts +205 -172
- package/dist/esm/models.js +0 -4
- package/dist/esm/models.js.map +7 -1
- package/dist/esm/outputModels.d.ts +290 -208
- package/dist/esm/outputModels.js +0 -4
- package/dist/esm/outputModels.js.map +7 -1
- package/dist/esm/paginateHelper.js +95 -155
- package/dist/esm/paginateHelper.js.map +7 -1
- package/dist/esm/parameters.d.ts +107 -66
- package/dist/esm/parameters.js +0 -4
- package/dist/esm/parameters.js.map +7 -1
- package/dist/esm/pollingHelper.d.ts +82 -4
- package/dist/esm/pollingHelper.js +117 -18
- package/dist/esm/pollingHelper.js.map +7 -1
- package/dist/esm/responses.d.ts +234 -121
- package/dist/esm/responses.js +0 -4
- package/dist/esm/responses.js.map +7 -1
- package/dist/esm/util/LROUtil.js +52 -50
- package/dist/esm/util/LROUtil.js.map +7 -1
- package/dist/react-native/azureLoadTesting.js +14 -12
- package/dist/react-native/azureLoadTesting.js.map +1 -1
- package/dist/react-native/clientDefinitions.d.ts +66 -34
- package/dist/react-native/clientDefinitions.js.map +1 -1
- package/dist/react-native/getFileValidationPoller.js +16 -11
- package/dist/react-native/getFileValidationPoller.js.map +1 -1
- package/dist/react-native/getTestProfileRunCompletionPoller.js +16 -11
- package/dist/react-native/getTestProfileRunCompletionPoller.js.map +1 -1
- package/dist/react-native/getTestRunCompletionPoller.js +16 -11
- package/dist/react-native/getTestRunCompletionPoller.js.map +1 -1
- package/dist/react-native/index.d.ts +6 -6
- package/dist/react-native/index.js +1 -7
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/isUnexpected.d.ts +15 -9
- package/dist/react-native/isUnexpected.js +21 -13
- package/dist/react-native/isUnexpected.js.map +1 -1
- package/dist/react-native/models.d.ts +205 -172
- package/dist/react-native/models.js.map +1 -1
- package/dist/react-native/outputModels.d.ts +290 -208
- package/dist/react-native/outputModels.js.map +1 -1
- package/dist/react-native/paginateHelper.js +43 -73
- package/dist/react-native/paginateHelper.js.map +1 -1
- package/dist/react-native/parameters.d.ts +107 -66
- package/dist/react-native/parameters.js.map +1 -1
- package/dist/react-native/pollingHelper.d.ts +82 -4
- package/dist/react-native/pollingHelper.js +119 -15
- package/dist/react-native/pollingHelper.js.map +1 -1
- package/dist/react-native/responses.d.ts +234 -121
- package/dist/react-native/responses.js.map +1 -1
- package/package.json +69 -86
- package/review/{load-testing.api.md → load-testing-node.api.md} +420 -23
- package/dist/browser/azureLoadTesting.d.ts.map +0 -1
- package/dist/browser/clientDefinitions.d.ts.map +0 -1
- package/dist/browser/getFileValidationPoller.d.ts.map +0 -1
- package/dist/browser/getTestProfileRunCompletionPoller.d.ts.map +0 -1
- package/dist/browser/getTestRunCompletionPoller.d.ts.map +0 -1
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/isUnexpected.d.ts.map +0 -1
- package/dist/browser/logger.d.ts.map +0 -1
- package/dist/browser/models.d.ts.map +0 -1
- package/dist/browser/outputModels.d.ts.map +0 -1
- package/dist/browser/paginateHelper.d.ts.map +0 -1
- package/dist/browser/parameters.d.ts.map +0 -1
- package/dist/browser/pollingHelper.d.ts.map +0 -1
- package/dist/browser/responses.d.ts.map +0 -1
- package/dist/browser/util/LROUtil.d.ts.map +0 -1
- package/dist/commonjs/azureLoadTesting.d.ts.map +0 -1
- package/dist/commonjs/clientDefinitions.d.ts.map +0 -1
- package/dist/commonjs/getFileValidationPoller.d.ts.map +0 -1
- package/dist/commonjs/getTestProfileRunCompletionPoller.d.ts.map +0 -1
- package/dist/commonjs/getTestRunCompletionPoller.d.ts.map +0 -1
- package/dist/commonjs/index.d.ts.map +0 -1
- package/dist/commonjs/isUnexpected.d.ts.map +0 -1
- package/dist/commonjs/logger.d.ts.map +0 -1
- package/dist/commonjs/models.d.ts.map +0 -1
- package/dist/commonjs/outputModels.d.ts.map +0 -1
- package/dist/commonjs/paginateHelper.d.ts.map +0 -1
- package/dist/commonjs/parameters.d.ts.map +0 -1
- package/dist/commonjs/pollingHelper.d.ts.map +0 -1
- package/dist/commonjs/responses.d.ts.map +0 -1
- package/dist/commonjs/util/LROUtil.d.ts.map +0 -1
- package/dist/esm/azureLoadTesting.d.ts.map +0 -1
- package/dist/esm/clientDefinitions.d.ts.map +0 -1
- package/dist/esm/getFileValidationPoller.d.ts.map +0 -1
- package/dist/esm/getTestProfileRunCompletionPoller.d.ts.map +0 -1
- package/dist/esm/getTestRunCompletionPoller.d.ts.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/isUnexpected.d.ts.map +0 -1
- package/dist/esm/logger.d.ts.map +0 -1
- package/dist/esm/models.d.ts.map +0 -1
- package/dist/esm/outputModels.d.ts.map +0 -1
- package/dist/esm/paginateHelper.d.ts.map +0 -1
- package/dist/esm/parameters.d.ts.map +0 -1
- package/dist/esm/pollingHelper.d.ts.map +0 -1
- package/dist/esm/responses.d.ts.map +0 -1
- package/dist/esm/util/LROUtil.d.ts.map +0 -1
- package/dist/react-native/azureLoadTesting.d.ts.map +0 -1
- package/dist/react-native/clientDefinitions.d.ts.map +0 -1
- package/dist/react-native/getFileValidationPoller.d.ts.map +0 -1
- package/dist/react-native/getTestProfileRunCompletionPoller.d.ts.map +0 -1
- package/dist/react-native/getTestRunCompletionPoller.d.ts.map +0 -1
- package/dist/react-native/index.d.ts.map +0 -1
- package/dist/react-native/isUnexpected.d.ts.map +0 -1
- package/dist/react-native/logger.d.ts.map +0 -1
- package/dist/react-native/models.d.ts.map +0 -1
- package/dist/react-native/outputModels.d.ts.map +0 -1
- package/dist/react-native/paginateHelper.d.ts.map +0 -1
- package/dist/react-native/parameters.d.ts.map +0 -1
- package/dist/react-native/pollingHelper.d.ts.map +0 -1
- package/dist/react-native/responses.d.ts.map +0 -1
- package/dist/react-native/util/LROUtil.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileValidationPoller.js","sourceRoot":"","sources":["../../src/getFileValidationPoller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState, SimplePollerLike } from \"@azure/core-lro\";\nimport type { FileUploadAndValidatePoller, PolledOperationOptions } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n LoadTestAdministrationGetTestFile200Response,\n LoadTestAdministrationUploadTestFile201Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep } from \"./util/LROUtil.js\";\n\n/**\n * Uploads a file and creates a poller to poll for validation.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getFileValidationPoller(\n client: AzureLoadTestingClient,\n fileUploadResult: LoadTestAdministrationUploadTestFile201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<FileUploadAndValidatePoller> {\n // get filename and testid from initial response\n const fileName = fileUploadResult.body.fileName;\n const requestUrl = fileUploadResult.request.url;\n const testId = requestUrl.substring(\n requestUrl.indexOf(\"tests/\") + 6,\n requestUrl.lastIndexOf(\"/files\"),\n );\n type Handler = (state: OperationState<LoadTestAdministrationGetTestFile200Response>) => void;\n\n const state: OperationState<LoadTestAdministrationGetTestFile200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<LoadTestAdministrationGetTestFile200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2000;\n\n const poller: SimplePollerLike<\n OperationState<LoadTestAdministrationGetTestFile200Response>,\n LoadTestAdministrationGetTestFile200Response\n > = {\n async poll(options?: { abortSignal?: AbortSignalLike }): Promise<void> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (fileName) {\n const fileValidationResponse = await client\n .path(\"/tests/{testId}/files/{fileName}\", testId, fileName)\n .get();\n if (isUnexpected(fileValidationResponse)) {\n state.status = \"failed\";\n state.error = new Error(fileValidationResponse.body.error.message);\n return;\n }\n\n switch (fileValidationResponse.body.validationStatus) {\n case \"NOT_VALIDATED\": {\n state.status = \"succeeded\";\n break;\n }\n case \"VALIDATION_INITIATED\": {\n state.status = \"running\";\n break;\n }\n case \"VALIDATION_SUCCESS\":\n case \"VALIDATION_NOT_REQUIRED\": {\n state.status = \"succeeded\";\n break;\n }\n case \"VALIDATION_FAILURE\": {\n state.status = \"failed\";\n state.error = new Error(fileValidationResponse.body.validationFailureDetails);\n break;\n }\n }\n state.result = fileValidationResponse;\n\n await processProgressCallbacks();\n }\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<LoadTestAdministrationGetTestFile200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as LoadTestAdministrationGetTestFile200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (state: OperationState<LoadTestAdministrationGetTestFile200Response>) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<LoadTestAdministrationGetTestFile200Response> {\n return state;\n },\n\n getResult(): LoadTestAdministrationGetTestFile200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n };\n\n return poller;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"getFileValidationPoller.js","sourceRoot":"","sources":["../../src/getFileValidationPoller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState } from \"@azure/core-lro\";\nimport type { SimplePollerLike } from \"./pollingHelper.js\";\nimport type { FileUploadAndValidatePoller, PolledOperationOptions } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n LoadTestAdministrationGetTestFile200Response,\n LoadTestAdministrationUploadTestFile201Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep } from \"./util/LROUtil.js\";\n\n/**\n * Uploads a file and creates a poller to poll for validation.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getFileValidationPoller(\n client: AzureLoadTestingClient,\n fileUploadResult: LoadTestAdministrationUploadTestFile201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<FileUploadAndValidatePoller> {\n // get filename and testid from initial response\n const fileName = fileUploadResult.body.fileName;\n const requestUrl = fileUploadResult.request.url;\n const testId = requestUrl.substring(\n requestUrl.indexOf(\"tests/\") + 6,\n requestUrl.lastIndexOf(\"/files\"),\n );\n type Handler = (state: OperationState<LoadTestAdministrationGetTestFile200Response>) => void;\n\n const state: OperationState<LoadTestAdministrationGetTestFile200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<LoadTestAdministrationGetTestFile200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2000;\n\n const poller: SimplePollerLike<\n OperationState<LoadTestAdministrationGetTestFile200Response>,\n LoadTestAdministrationGetTestFile200Response\n > = {\n async poll(options?: {\n abortSignal?: AbortSignalLike;\n }): Promise<OperationState<LoadTestAdministrationGetTestFile200Response>> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (fileName) {\n const fileValidationResponse = await client\n .path(\"/tests/{testId}/files/{fileName}\", testId, fileName)\n .get();\n if (isUnexpected(fileValidationResponse)) {\n state.status = \"failed\";\n state.error = new Error(fileValidationResponse.body.error.message);\n return state;\n }\n\n switch (fileValidationResponse.body.validationStatus) {\n case \"NOT_VALIDATED\": {\n state.status = \"succeeded\";\n break;\n }\n case \"VALIDATION_INITIATED\": {\n state.status = \"running\";\n break;\n }\n case \"VALIDATION_SUCCESS\":\n case \"VALIDATION_NOT_REQUIRED\": {\n state.status = \"succeeded\";\n break;\n }\n case \"VALIDATION_FAILURE\": {\n state.status = \"failed\";\n state.error = new Error(fileValidationResponse.body.validationFailureDetails);\n break;\n }\n }\n state.result = fileValidationResponse;\n\n await processProgressCallbacks();\n }\n return state;\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<LoadTestAdministrationGetTestFile200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as LoadTestAdministrationGetTestFile200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (state: OperationState<LoadTestAdministrationGetTestFile200Response>) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<LoadTestAdministrationGetTestFile200Response> {\n return state;\n },\n\n getResult(): LoadTestAdministrationGetTestFile200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n async serialize(): Promise<string> {\n return JSON.stringify({ state });\n },\n async submitted(): Promise<void> {\n // No-op: the file validation is a custom poller\n },\n };\n\n return poller;\n}\n"]}
|
|
@@ -10,7 +10,6 @@ import { sleep, isTestProfileRunInProgress } from "./util/LROUtil.js";
|
|
|
10
10
|
* @returns A poller which can be called to poll until completion of the job.
|
|
11
11
|
*/
|
|
12
12
|
export async function getTestProfileRunCompletionPoller(client, createTestProfileRunResponse, polledOperationOptions = {}) {
|
|
13
|
-
var _a;
|
|
14
13
|
const state = {
|
|
15
14
|
status: "notStarted",
|
|
16
15
|
};
|
|
@@ -19,12 +18,11 @@ export async function getTestProfileRunCompletionPoller(client, createTestProfil
|
|
|
19
18
|
let resultPromise;
|
|
20
19
|
let cancelJob;
|
|
21
20
|
const abortController = new AbortController();
|
|
22
|
-
const currentPollIntervalInMs =
|
|
21
|
+
const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 10000;
|
|
23
22
|
const testProfileRunId = createTestProfileRunResponse.body.testProfileRunId;
|
|
24
23
|
const poller = {
|
|
25
24
|
async poll(options) {
|
|
26
|
-
|
|
27
|
-
if ((_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
|
|
25
|
+
if (options?.abortSignal?.aborted) {
|
|
28
26
|
throw new AbortError("The polling was aborted.");
|
|
29
27
|
}
|
|
30
28
|
if (testProfileRunId) {
|
|
@@ -34,7 +32,7 @@ export async function getTestProfileRunCompletionPoller(client, createTestProfil
|
|
|
34
32
|
if (isUnexpected(getTestProfileRunResult)) {
|
|
35
33
|
state.status = "failed";
|
|
36
34
|
state.error = new Error(getTestProfileRunResult.body.error.message);
|
|
37
|
-
return;
|
|
35
|
+
return state;
|
|
38
36
|
}
|
|
39
37
|
if (getTestProfileRunResult.body.status === "FAILED") {
|
|
40
38
|
state.status = "failed";
|
|
@@ -52,20 +50,21 @@ export async function getTestProfileRunCompletionPoller(client, createTestProfil
|
|
|
52
50
|
state.result = getTestProfileRunResult;
|
|
53
51
|
await processProgressCallbacks();
|
|
54
52
|
}
|
|
53
|
+
return state;
|
|
55
54
|
},
|
|
56
55
|
pollUntilDone(pollOptions) {
|
|
57
|
-
return (resultPromise
|
|
56
|
+
return (resultPromise ??= (async () => {
|
|
58
57
|
const { abortSignal: inputAbortSignal } = pollOptions || {};
|
|
59
58
|
// In the future we can use AbortSignal.any() instead
|
|
60
59
|
function abortListener() {
|
|
61
60
|
abortController.abort();
|
|
62
61
|
}
|
|
63
62
|
const abortSignal = abortController.signal;
|
|
64
|
-
if (inputAbortSignal
|
|
63
|
+
if (inputAbortSignal?.aborted) {
|
|
65
64
|
abortController.abort();
|
|
66
65
|
}
|
|
67
66
|
else if (!abortSignal.aborted) {
|
|
68
|
-
inputAbortSignal
|
|
67
|
+
inputAbortSignal?.addEventListener("abort", abortListener, { once: true });
|
|
69
68
|
}
|
|
70
69
|
try {
|
|
71
70
|
if (!poller.isDone()) {
|
|
@@ -79,7 +78,7 @@ export async function getTestProfileRunCompletionPoller(client, createTestProfil
|
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
80
|
finally {
|
|
82
|
-
inputAbortSignal
|
|
81
|
+
inputAbortSignal?.removeEventListener("abort", abortListener);
|
|
83
82
|
}
|
|
84
83
|
switch (state.status) {
|
|
85
84
|
case "succeeded":
|
|
@@ -95,7 +94,7 @@ export async function getTestProfileRunCompletionPoller(client, createTestProfil
|
|
|
95
94
|
}
|
|
96
95
|
})().finally(() => {
|
|
97
96
|
resultPromise = undefined;
|
|
98
|
-
}))
|
|
97
|
+
}));
|
|
99
98
|
},
|
|
100
99
|
onProgress(callback) {
|
|
101
100
|
const s = Symbol();
|
|
@@ -107,7 +106,7 @@ export async function getTestProfileRunCompletionPoller(client, createTestProfil
|
|
|
107
106
|
},
|
|
108
107
|
stopPolling() {
|
|
109
108
|
abortController.abort();
|
|
110
|
-
cancelJob
|
|
109
|
+
cancelJob?.();
|
|
111
110
|
},
|
|
112
111
|
isStopped() {
|
|
113
112
|
return resultPromise === undefined;
|
|
@@ -121,6 +120,12 @@ export async function getTestProfileRunCompletionPoller(client, createTestProfil
|
|
|
121
120
|
toString() {
|
|
122
121
|
return JSON.stringify({ state });
|
|
123
122
|
},
|
|
123
|
+
async serialize() {
|
|
124
|
+
return JSON.stringify({ state });
|
|
125
|
+
},
|
|
126
|
+
async submitted() {
|
|
127
|
+
// No-op: the test profile run is a custom poller
|
|
128
|
+
},
|
|
124
129
|
};
|
|
125
130
|
return poller;
|
|
126
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTestProfileRunCompletionPoller.js","sourceRoot":"","sources":["../../src/getTestProfileRunCompletionPoller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState, SimplePollerLike } from \"@azure/core-lro\";\nimport type { PolledOperationOptions, TestProfileRunCompletionPoller } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response,\n TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response,\n TestProfileRunAdministrationGetTestProfileRun200Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep, isTestProfileRunInProgress } from \"./util/LROUtil.js\";\n\n/**\n * Creates a poller to poll for test run status.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getTestProfileRunCompletionPoller(\n client: AzureLoadTestingClient,\n createTestProfileRunResponse:\n | TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response\n | TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<TestProfileRunCompletionPoller> {\n type Handler = (\n state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n ) => void;\n\n const state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<TestProfileRunAdministrationGetTestProfileRun200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 10000;\n const testProfileRunId = createTestProfileRunResponse.body.testProfileRunId;\n\n const poller: SimplePollerLike<\n OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n TestProfileRunAdministrationGetTestProfileRun200Response\n > = {\n async poll(options?: { abortSignal?: AbortSignalLike }): Promise<void> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (testProfileRunId) {\n const getTestProfileRunResult = await client\n .path(\"/test-profile-runs/{testProfileRunId}\", testProfileRunId)\n .get();\n if (isUnexpected(getTestProfileRunResult)) {\n state.status = \"failed\";\n state.error = new Error(getTestProfileRunResult.body.error.message);\n return;\n }\n\n if (getTestProfileRunResult.body.status === \"FAILED\") {\n state.status = \"failed\";\n state.error = new Error(getTestProfileRunResult.body.status);\n }\n\n if (getTestProfileRunResult.body.status === \"CANCELLED\") {\n state.status = \"canceled\";\n }\n\n if (getTestProfileRunResult.body.status === \"DONE\") {\n state.status = \"succeeded\";\n }\n\n if (isTestProfileRunInProgress(getTestProfileRunResult.body)) {\n state.status = \"running\";\n }\n state.result = getTestProfileRunResult;\n await processProgressCallbacks();\n }\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<TestProfileRunAdministrationGetTestProfileRun200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as TestProfileRunAdministrationGetTestProfileRun200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (\n state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n ) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<TestProfileRunAdministrationGetTestProfileRun200Response> {\n return state;\n },\n\n getResult(): TestProfileRunAdministrationGetTestProfileRun200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n };\n\n return poller;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"getTestProfileRunCompletionPoller.js","sourceRoot":"","sources":["../../src/getTestProfileRunCompletionPoller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState } from \"@azure/core-lro\";\nimport type { SimplePollerLike } from \"./pollingHelper.js\";\nimport type { PolledOperationOptions, TestProfileRunCompletionPoller } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response,\n TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response,\n TestProfileRunAdministrationGetTestProfileRun200Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep, isTestProfileRunInProgress } from \"./util/LROUtil.js\";\n\n/**\n * Creates a poller to poll for test run status.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getTestProfileRunCompletionPoller(\n client: AzureLoadTestingClient,\n createTestProfileRunResponse:\n | TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response\n | TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<TestProfileRunCompletionPoller> {\n type Handler = (\n state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n ) => void;\n\n const state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<TestProfileRunAdministrationGetTestProfileRun200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 10000;\n const testProfileRunId = createTestProfileRunResponse.body.testProfileRunId;\n\n const poller: SimplePollerLike<\n OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n TestProfileRunAdministrationGetTestProfileRun200Response\n > = {\n async poll(options?: {\n abortSignal?: AbortSignalLike;\n }): Promise<OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (testProfileRunId) {\n const getTestProfileRunResult = await client\n .path(\"/test-profile-runs/{testProfileRunId}\", testProfileRunId)\n .get();\n if (isUnexpected(getTestProfileRunResult)) {\n state.status = \"failed\";\n state.error = new Error(getTestProfileRunResult.body.error.message);\n return state;\n }\n\n if (getTestProfileRunResult.body.status === \"FAILED\") {\n state.status = \"failed\";\n state.error = new Error(getTestProfileRunResult.body.status);\n }\n\n if (getTestProfileRunResult.body.status === \"CANCELLED\") {\n state.status = \"canceled\";\n }\n\n if (getTestProfileRunResult.body.status === \"DONE\") {\n state.status = \"succeeded\";\n }\n\n if (isTestProfileRunInProgress(getTestProfileRunResult.body)) {\n state.status = \"running\";\n }\n state.result = getTestProfileRunResult;\n await processProgressCallbacks();\n }\n\n return state;\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<TestProfileRunAdministrationGetTestProfileRun200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as TestProfileRunAdministrationGetTestProfileRun200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (\n state: OperationState<TestProfileRunAdministrationGetTestProfileRun200Response>,\n ) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<TestProfileRunAdministrationGetTestProfileRun200Response> {\n return state;\n },\n\n getResult(): TestProfileRunAdministrationGetTestProfileRun200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n\n async serialize(): Promise<string> {\n return JSON.stringify({ state });\n },\n\n async submitted(): Promise<void> {\n // No-op: the test profile run is a custom poller\n },\n };\n\n return poller;\n}\n"]}
|
|
@@ -10,7 +10,6 @@ import { sleep, isTestRunInProgress } from "./util/LROUtil.js";
|
|
|
10
10
|
* @returns A poller which can be called to poll until completion of the job.
|
|
11
11
|
*/
|
|
12
12
|
export async function getTestRunCompletionPoller(client, createTestRunResponse, polledOperationOptions = {}) {
|
|
13
|
-
var _a;
|
|
14
13
|
const state = {
|
|
15
14
|
status: "notStarted",
|
|
16
15
|
};
|
|
@@ -19,12 +18,11 @@ export async function getTestRunCompletionPoller(client, createTestRunResponse,
|
|
|
19
18
|
let resultPromise;
|
|
20
19
|
let cancelJob;
|
|
21
20
|
const abortController = new AbortController();
|
|
22
|
-
const currentPollIntervalInMs =
|
|
21
|
+
const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2000;
|
|
23
22
|
const testRunId = createTestRunResponse.body.testRunId;
|
|
24
23
|
const poller = {
|
|
25
24
|
async poll(options) {
|
|
26
|
-
|
|
27
|
-
if ((_a = options === null || options === void 0 ? void 0 : options.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
|
|
25
|
+
if (options?.abortSignal?.aborted) {
|
|
28
26
|
throw new AbortError("The polling was aborted.");
|
|
29
27
|
}
|
|
30
28
|
if (testRunId) {
|
|
@@ -32,7 +30,7 @@ export async function getTestRunCompletionPoller(client, createTestRunResponse,
|
|
|
32
30
|
if (isUnexpected(getTestRunResult)) {
|
|
33
31
|
state.status = "failed";
|
|
34
32
|
state.error = new Error(getTestRunResult.body.error.message);
|
|
35
|
-
return;
|
|
33
|
+
return state;
|
|
36
34
|
}
|
|
37
35
|
if (getTestRunResult.body.status === "FAILED") {
|
|
38
36
|
state.status = "failed";
|
|
@@ -50,20 +48,21 @@ export async function getTestRunCompletionPoller(client, createTestRunResponse,
|
|
|
50
48
|
state.result = getTestRunResult;
|
|
51
49
|
await processProgressCallbacks();
|
|
52
50
|
}
|
|
51
|
+
return state;
|
|
53
52
|
},
|
|
54
53
|
pollUntilDone(pollOptions) {
|
|
55
|
-
return (resultPromise
|
|
54
|
+
return (resultPromise ??= (async () => {
|
|
56
55
|
const { abortSignal: inputAbortSignal } = pollOptions || {};
|
|
57
56
|
// In the future we can use AbortSignal.any() instead
|
|
58
57
|
function abortListener() {
|
|
59
58
|
abortController.abort();
|
|
60
59
|
}
|
|
61
60
|
const abortSignal = abortController.signal;
|
|
62
|
-
if (inputAbortSignal
|
|
61
|
+
if (inputAbortSignal?.aborted) {
|
|
63
62
|
abortController.abort();
|
|
64
63
|
}
|
|
65
64
|
else if (!abortSignal.aborted) {
|
|
66
|
-
inputAbortSignal
|
|
65
|
+
inputAbortSignal?.addEventListener("abort", abortListener, { once: true });
|
|
67
66
|
}
|
|
68
67
|
try {
|
|
69
68
|
if (!poller.isDone()) {
|
|
@@ -77,7 +76,7 @@ export async function getTestRunCompletionPoller(client, createTestRunResponse,
|
|
|
77
76
|
}
|
|
78
77
|
}
|
|
79
78
|
finally {
|
|
80
|
-
inputAbortSignal
|
|
79
|
+
inputAbortSignal?.removeEventListener("abort", abortListener);
|
|
81
80
|
}
|
|
82
81
|
switch (state.status) {
|
|
83
82
|
case "succeeded":
|
|
@@ -93,7 +92,7 @@ export async function getTestRunCompletionPoller(client, createTestRunResponse,
|
|
|
93
92
|
}
|
|
94
93
|
})().finally(() => {
|
|
95
94
|
resultPromise = undefined;
|
|
96
|
-
}))
|
|
95
|
+
}));
|
|
97
96
|
},
|
|
98
97
|
onProgress(callback) {
|
|
99
98
|
const s = Symbol();
|
|
@@ -105,7 +104,7 @@ export async function getTestRunCompletionPoller(client, createTestRunResponse,
|
|
|
105
104
|
},
|
|
106
105
|
stopPolling() {
|
|
107
106
|
abortController.abort();
|
|
108
|
-
cancelJob
|
|
107
|
+
cancelJob?.();
|
|
109
108
|
},
|
|
110
109
|
isStopped() {
|
|
111
110
|
return resultPromise === undefined;
|
|
@@ -119,6 +118,12 @@ export async function getTestRunCompletionPoller(client, createTestRunResponse,
|
|
|
119
118
|
toString() {
|
|
120
119
|
return JSON.stringify({ state });
|
|
121
120
|
},
|
|
121
|
+
async serialize() {
|
|
122
|
+
return JSON.stringify({ state });
|
|
123
|
+
},
|
|
124
|
+
async submitted() {
|
|
125
|
+
// No-op: the test run is a custom poller
|
|
126
|
+
},
|
|
122
127
|
};
|
|
123
128
|
return poller;
|
|
124
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTestRunCompletionPoller.js","sourceRoot":"","sources":["../../src/getTestRunCompletionPoller.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState, SimplePollerLike } from \"@azure/core-lro\";\nimport type { TestRunCompletionPoller, PolledOperationOptions } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n LoadTestRunCreateOrUpdateTestRun200Response,\n LoadTestRunCreateOrUpdateTestRun201Response,\n LoadTestRunGetTestRun200Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep, isTestRunInProgress } from \"./util/LROUtil.js\";\n\n/**\n * Creates a poller to poll for test run status.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getTestRunCompletionPoller(\n client: AzureLoadTestingClient,\n createTestRunResponse:\n | LoadTestRunCreateOrUpdateTestRun200Response\n | LoadTestRunCreateOrUpdateTestRun201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<TestRunCompletionPoller> {\n type Handler = (state: OperationState<LoadTestRunGetTestRun200Response>) => void;\n\n const state: OperationState<LoadTestRunGetTestRun200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<LoadTestRunGetTestRun200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2000;\n const testRunId = createTestRunResponse.body.testRunId;\n\n const poller: SimplePollerLike<\n OperationState<LoadTestRunGetTestRun200Response>,\n LoadTestRunGetTestRun200Response\n > = {\n async poll(options?: { abortSignal?: AbortSignalLike }): Promise<void> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (testRunId) {\n const getTestRunResult = await client.path(\"/test-runs/{testRunId}\", testRunId).get();\n if (isUnexpected(getTestRunResult)) {\n state.status = \"failed\";\n state.error = new Error(getTestRunResult.body.error.message);\n return;\n }\n\n if (getTestRunResult.body.status === \"FAILED\") {\n state.status = \"failed\";\n state.error = new Error(getTestRunResult.body.status);\n }\n\n if (getTestRunResult.body.status === \"CANCELLED\") {\n state.status = \"canceled\";\n }\n\n if (getTestRunResult.body.status === \"DONE\") {\n state.status = \"succeeded\";\n }\n\n if (isTestRunInProgress(getTestRunResult.body)) {\n state.status = \"running\";\n }\n state.result = getTestRunResult;\n await processProgressCallbacks();\n }\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<LoadTestRunGetTestRun200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as LoadTestRunGetTestRun200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (state: OperationState<LoadTestRunGetTestRun200Response>) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<LoadTestRunGetTestRun200Response> {\n return state;\n },\n\n getResult(): LoadTestRunGetTestRun200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n };\n\n return poller;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"getTestRunCompletionPoller.js","sourceRoot":"","sources":["../../src/getTestRunCompletionPoller.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAA8B,EAC9B,qBAE+C,EAC/C,yBAAiD,EAAE;IAInD,MAAM,KAAK,GAAqD;QAC9D,MAAM,EAAE,YAAY;KACrB,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAmB,CAAC;IACrD,MAAM,wBAAwB,GAAG,KAAK,IAAmB,EAAE,CACzD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,IAAI,aAAoE,CAAC;IACzE,IAAI,SAAmC,CAAC;IACxC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAClF,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC;IAEvD,MAAM,MAAM,GAGR;QACF,KAAK,CAAC,IAAI,CAAC,OAEV;YACC,IAAI,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;gBAClC,MAAM,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtF,IAAI,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACxB,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC7D,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC9C,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACxB,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxD,CAAC;gBAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACjD,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC5B,CAAC;gBAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC5C,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC7B,CAAC;gBAED,IAAI,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC3B,CAAC;gBACD,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC;gBAChC,MAAM,wBAAwB,EAAE,CAAC;YACnC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,aAAa,CAAC,WAEb;YACC,OAAO,CAAC,aAAa,KAAK,CAAC,KAAK,IAAI,EAAE;gBACpC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;gBAC5D,qDAAqD;gBACrD,SAAS,aAAa;oBACpB,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC1B,CAAC;gBACD,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC;gBAC3C,IAAI,gBAAgB,EAAE,OAAO,EAAE,CAAC;oBAC9B,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC1B,CAAC;qBAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBAChC,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBAED,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;wBACrB,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;wBACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;4BACxB,MAAM,KAAK,GAAG,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;4BAC1D,SAAS,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;4BAC1C,MAAM,KAAK,CAAC;4BACZ,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;wBACrC,CAAC;oBACH,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAChE,CAAC;gBACD,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;oBACrB,KAAK,WAAW,CAAC;oBACjB,KAAK,QAAQ,CAAC;oBACd,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,OAAO,MAAM,CAAC,SAAS,EAAsC,CAAC;oBAChE,CAAC;oBACD,KAAK,YAAY,CAAC;oBAClB,KAAK,SAAS,CAAC,CAAC,CAAC;wBACf,cAAc;wBACd,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChB,aAAa,GAAG,SAAS,CAAC;YAC5B,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;QAED,UAAU,CACR,QAA2E;YAE3E,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;YACnB,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAEnC,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM;YACJ,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE,CAAC;QAED,WAAW;YACT,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,SAAS,EAAE,EAAE,CAAC;QAChB,CAAC;QAED,SAAS;YACP,OAAO,aAAa,KAAK,SAAS,CAAC;QACrC,CAAC;QAED,iBAAiB;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS;YACP,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QAED,QAAQ;YACN,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,SAAS;YACb,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,SAAS;YACb,yCAAyC;QAC3C,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport type { CancelOnProgress, OperationState } from \"@azure/core-lro\";\nimport type { SimplePollerLike } from \"./pollingHelper.js\";\nimport type { TestRunCompletionPoller, PolledOperationOptions } from \"./models.js\";\nimport type { AzureLoadTestingClient } from \"./clientDefinitions.js\";\nimport type {\n LoadTestRunCreateOrUpdateTestRun200Response,\n LoadTestRunCreateOrUpdateTestRun201Response,\n LoadTestRunGetTestRun200Response,\n} from \"./responses.js\";\nimport { isUnexpected } from \"./isUnexpected.js\";\nimport { sleep, isTestRunInProgress } from \"./util/LROUtil.js\";\n\n/**\n * Creates a poller to poll for test run status.\n * @param client - The Load Testing client.\n * @param options - The operation options.\n * @returns A poller which can be called to poll until completion of the job.\n */\nexport async function getTestRunCompletionPoller(\n client: AzureLoadTestingClient,\n createTestRunResponse:\n | LoadTestRunCreateOrUpdateTestRun200Response\n | LoadTestRunCreateOrUpdateTestRun201Response,\n polledOperationOptions: PolledOperationOptions = {},\n): Promise<TestRunCompletionPoller> {\n type Handler = (state: OperationState<LoadTestRunGetTestRun200Response>) => void;\n\n const state: OperationState<LoadTestRunGetTestRun200Response> = {\n status: \"notStarted\",\n };\n\n const progressCallbacks = new Map<symbol, Handler>();\n const processProgressCallbacks = async (): Promise<void> =>\n progressCallbacks.forEach((h) => h(state));\n let resultPromise: Promise<LoadTestRunGetTestRun200Response> | undefined;\n let cancelJob: (() => void) | undefined;\n const abortController = new AbortController();\n const currentPollIntervalInMs = polledOperationOptions.updateIntervalInMs ?? 2000;\n const testRunId = createTestRunResponse.body.testRunId;\n\n const poller: SimplePollerLike<\n OperationState<LoadTestRunGetTestRun200Response>,\n LoadTestRunGetTestRun200Response\n > = {\n async poll(options?: {\n abortSignal?: AbortSignalLike;\n }): Promise<OperationState<LoadTestRunGetTestRun200Response>> {\n if (options?.abortSignal?.aborted) {\n throw new AbortError(\"The polling was aborted.\");\n }\n\n if (testRunId) {\n const getTestRunResult = await client.path(\"/test-runs/{testRunId}\", testRunId).get();\n if (isUnexpected(getTestRunResult)) {\n state.status = \"failed\";\n state.error = new Error(getTestRunResult.body.error.message);\n return state;\n }\n\n if (getTestRunResult.body.status === \"FAILED\") {\n state.status = \"failed\";\n state.error = new Error(getTestRunResult.body.status);\n }\n\n if (getTestRunResult.body.status === \"CANCELLED\") {\n state.status = \"canceled\";\n }\n\n if (getTestRunResult.body.status === \"DONE\") {\n state.status = \"succeeded\";\n }\n\n if (isTestRunInProgress(getTestRunResult.body)) {\n state.status = \"running\";\n }\n state.result = getTestRunResult;\n await processProgressCallbacks();\n }\n return state;\n },\n\n pollUntilDone(pollOptions?: {\n abortSignal?: AbortSignalLike;\n }): Promise<LoadTestRunGetTestRun200Response> {\n return (resultPromise ??= (async () => {\n const { abortSignal: inputAbortSignal } = pollOptions || {};\n // In the future we can use AbortSignal.any() instead\n function abortListener(): void {\n abortController.abort();\n }\n const abortSignal = abortController.signal;\n if (inputAbortSignal?.aborted) {\n abortController.abort();\n } else if (!abortSignal.aborted) {\n inputAbortSignal?.addEventListener(\"abort\", abortListener, { once: true });\n }\n\n try {\n if (!poller.isDone()) {\n await poller.poll({ abortSignal });\n while (!poller.isDone()) {\n const delay = sleep(currentPollIntervalInMs, abortSignal);\n cancelJob = () => abortController.abort();\n await delay;\n await poller.poll({ abortSignal });\n }\n }\n } finally {\n inputAbortSignal?.removeEventListener(\"abort\", abortListener);\n }\n switch (state.status) {\n case \"succeeded\":\n case \"failed\":\n case \"canceled\": {\n return poller.getResult() as LoadTestRunGetTestRun200Response;\n }\n case \"notStarted\":\n case \"running\": {\n // Unreachable\n throw new Error(`polling completed without succeeding or failing`);\n }\n }\n })().finally(() => {\n resultPromise = undefined;\n }));\n },\n\n onProgress(\n callback: (state: OperationState<LoadTestRunGetTestRun200Response>) => void,\n ): CancelOnProgress {\n const s = Symbol();\n progressCallbacks.set(s, callback);\n\n return () => progressCallbacks.delete(s);\n },\n\n isDone(): boolean {\n return [\"succeeded\", \"failed\", \"canceled\"].includes(state.status);\n },\n\n stopPolling(): void {\n abortController.abort();\n cancelJob?.();\n },\n\n isStopped(): boolean {\n return resultPromise === undefined;\n },\n\n getOperationState(): OperationState<LoadTestRunGetTestRun200Response> {\n return state;\n },\n\n getResult(): LoadTestRunGetTestRun200Response | undefined {\n return state.result;\n },\n\n toString() {\n return JSON.stringify({ state });\n },\n\n async serialize(): Promise<string> {\n return JSON.stringify({ state });\n },\n\n async submitted(): Promise<void> {\n // No-op: the test run is a custom poller\n },\n };\n\n return poller;\n}\n"]}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import AzureLoadTesting from "./azureLoadTesting.js";
|
|
2
2
|
export * from "./azureLoadTesting.js";
|
|
3
|
-
export * from "./parameters.js";
|
|
4
|
-
export * from "./responses.js";
|
|
5
|
-
export * from "./clientDefinitions.js";
|
|
3
|
+
export type * from "./parameters.js";
|
|
4
|
+
export type * from "./responses.js";
|
|
5
|
+
export type * from "./clientDefinitions.js";
|
|
6
6
|
export * from "./isUnexpected.js";
|
|
7
|
-
export * from "./models.js";
|
|
8
|
-
export * from "./outputModels.js";
|
|
7
|
+
export type * from "./models.js";
|
|
8
|
+
export type * from "./outputModels.js";
|
|
9
9
|
export * from "./paginateHelper.js";
|
|
10
|
-
export
|
|
10
|
+
export * from "./pollingHelper.js";
|
|
11
11
|
export default AzureLoadTesting;
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/browser/index.js
CHANGED
|
@@ -2,14 +2,8 @@
|
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import AzureLoadTesting from "./azureLoadTesting.js";
|
|
4
4
|
export * from "./azureLoadTesting.js";
|
|
5
|
-
export * from "./parameters.js";
|
|
6
|
-
export * from "./responses.js";
|
|
7
|
-
export * from "./clientDefinitions.js";
|
|
8
5
|
export * from "./isUnexpected.js";
|
|
9
|
-
export * from "./models.js";
|
|
10
|
-
export * from "./outputModels.js";
|
|
11
6
|
export * from "./paginateHelper.js";
|
|
12
|
-
export
|
|
13
|
-
// eslint-disable-next-line @azure/azure-sdk/ts-modules-only-named
|
|
7
|
+
export * from "./pollingHelper.js";
|
|
14
8
|
export default AzureLoadTesting;
|
|
15
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,cAAc,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,cAAc,uBAAuB,CAAC;AAItC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,eAAe,gBAAgB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport AzureLoadTesting from \"./azureLoadTesting.js\";\n\nexport * from \"./azureLoadTesting.js\";\nexport type * from \"./parameters.js\";\nexport type * from \"./responses.js\";\nexport type * from \"./clientDefinitions.js\";\nexport * from \"./isUnexpected.js\";\nexport type * from \"./models.js\";\nexport type * from \"./outputModels.js\";\nexport * from \"./paginateHelper.js\";\nexport * from \"./pollingHelper.js\";\n\nexport default AzureLoadTesting;\n"]}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import type { LoadTestAdministrationCreateOrUpdateTest200Response, LoadTestAdministrationCreateOrUpdateTest201Response, LoadTestAdministrationCreateOrUpdateTestDefaultResponse, LoadTestAdministrationDeleteTest204Response, LoadTestAdministrationDeleteTestDefaultResponse, LoadTestAdministrationGetTest200Response, LoadTestAdministrationGetTestDefaultResponse, LoadTestAdministrationListTests200Response, LoadTestAdministrationListTestsDefaultResponse, LoadTestAdministrationUploadTestFile201Response, LoadTestAdministrationUploadTestFileDefaultResponse, LoadTestAdministrationGetTestFile200Response, LoadTestAdministrationGetTestFileDefaultResponse, LoadTestAdministrationDeleteTestFile204Response, LoadTestAdministrationDeleteTestFileDefaultResponse, LoadTestAdministrationListTestFiles200Response, LoadTestAdministrationListTestFilesDefaultResponse, LoadTestAdministrationCreateOrUpdateAppComponents200Response, LoadTestAdministrationCreateOrUpdateAppComponents201Response, LoadTestAdministrationCreateOrUpdateAppComponentsDefaultResponse, LoadTestAdministrationGetAppComponents200Response, LoadTestAdministrationGetAppComponentsDefaultResponse, LoadTestAdministrationCreateOrUpdateServerMetricsConfig200Response, LoadTestAdministrationCreateOrUpdateServerMetricsConfig201Response, LoadTestAdministrationCreateOrUpdateServerMetricsConfigDefaultResponse, LoadTestAdministrationGetServerMetricsConfig200Response, LoadTestAdministrationGetServerMetricsConfigDefaultResponse, TestProfileAdministrationCreateOrUpdateTestProfile200Response, TestProfileAdministrationCreateOrUpdateTestProfile201Response, TestProfileAdministrationCreateOrUpdateTestProfileDefaultResponse, TestProfileAdministrationDeleteTestProfile204Response, TestProfileAdministrationDeleteTestProfileDefaultResponse, TestProfileAdministrationGetTestProfile200Response, TestProfileAdministrationGetTestProfileDefaultResponse, TestProfileAdministrationListTestProfiles200Response, TestProfileAdministrationListTestProfilesDefaultResponse, LoadTestRunGetTestRun200Response, LoadTestRunGetTestRunDefaultResponse, LoadTestRunCreateOrUpdateTestRun200Response, LoadTestRunCreateOrUpdateTestRun201Response, LoadTestRunCreateOrUpdateTestRunDefaultResponse, LoadTestRunDeleteTestRun204Response, LoadTestRunDeleteTestRunDefaultResponse, LoadTestRunListTestRuns200Response, LoadTestRunListTestRunsDefaultResponse, LoadTestRunGetTestRunFile200Response, LoadTestRunGetTestRunFileDefaultResponse, LoadTestRunStop200Response, LoadTestRunStopDefaultResponse, LoadTestRunListMetricNamespaces200Response, LoadTestRunListMetricNamespacesDefaultResponse, LoadTestRunListMetricDefinitions200Response, LoadTestRunListMetricDefinitionsDefaultResponse, LoadTestRunListMetrics200Response, LoadTestRunListMetricsDefaultResponse, LoadTestRunListMetricDimensionValues200Response, LoadTestRunListMetricDimensionValuesDefaultResponse, LoadTestRunCreateOrUpdateAppComponents200Response, LoadTestRunCreateOrUpdateAppComponents201Response, LoadTestRunCreateOrUpdateAppComponentsDefaultResponse, LoadTestRunGetAppComponents200Response, LoadTestRunGetAppComponentsDefaultResponse, LoadTestRunCreateOrUpdateServerMetricsConfig200Response, LoadTestRunCreateOrUpdateServerMetricsConfig201Response, LoadTestRunCreateOrUpdateServerMetricsConfigDefaultResponse, LoadTestRunGetServerMetricsConfig200Response, LoadTestRunGetServerMetricsConfigDefaultResponse, TestProfileRunAdministrationGetTestProfileRun200Response, TestProfileRunAdministrationGetTestProfileRunDefaultResponse, TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response, TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response, TestProfileRunAdministrationCreateOrUpdateTestProfileRunDefaultResponse, TestProfileRunAdministrationDeleteTestProfileRun204Response, TestProfileRunAdministrationDeleteTestProfileRunDefaultResponse, TestProfileRunAdministrationStop200Response, TestProfileRunAdministrationStopDefaultResponse, TestProfileRunAdministrationListTestProfileRuns200Response, TestProfileRunAdministrationListTestProfileRunsDefaultResponse
|
|
1
|
+
import type { OperationsGetStatus200Response, OperationsGetStatusDefaultResponse, LoadTestAdministrationCreateOrUpdateTest200Response, LoadTestAdministrationCreateOrUpdateTest201Response, LoadTestAdministrationCreateOrUpdateTestDefaultResponse, LoadTestAdministrationDeleteTest204Response, LoadTestAdministrationDeleteTestDefaultResponse, LoadTestAdministrationGetTest200Response, LoadTestAdministrationGetTestDefaultResponse, LoadTestAdministrationListTests200Response, LoadTestAdministrationListTestsDefaultResponse, LoadTestAdministrationCloneTest202Response, LoadTestAdministrationCloneTestLogicalResponse, LoadTestAdministrationCloneTestDefaultResponse, LoadTestAdministrationGenerateTestPlanRecommendations202Response, LoadTestAdministrationGenerateTestPlanRecommendationsLogicalResponse, LoadTestAdministrationGenerateTestPlanRecommendationsDefaultResponse, LoadTestAdministrationUploadTestFile201Response, LoadTestAdministrationUploadTestFileDefaultResponse, LoadTestAdministrationGetTestFile200Response, LoadTestAdministrationGetTestFileDefaultResponse, LoadTestAdministrationDeleteTestFile204Response, LoadTestAdministrationDeleteTestFileDefaultResponse, LoadTestAdministrationListTestFiles200Response, LoadTestAdministrationListTestFilesDefaultResponse, LoadTestAdministrationCreateOrUpdateAppComponents200Response, LoadTestAdministrationCreateOrUpdateAppComponents201Response, LoadTestAdministrationCreateOrUpdateAppComponentsDefaultResponse, LoadTestAdministrationGetAppComponents200Response, LoadTestAdministrationGetAppComponentsDefaultResponse, LoadTestAdministrationCreateOrUpdateServerMetricsConfig200Response, LoadTestAdministrationCreateOrUpdateServerMetricsConfig201Response, LoadTestAdministrationCreateOrUpdateServerMetricsConfigDefaultResponse, LoadTestAdministrationGetServerMetricsConfig200Response, LoadTestAdministrationGetServerMetricsConfigDefaultResponse, TestProfileAdministrationCreateOrUpdateTestProfile200Response, TestProfileAdministrationCreateOrUpdateTestProfile201Response, TestProfileAdministrationCreateOrUpdateTestProfileDefaultResponse, TestProfileAdministrationDeleteTestProfile204Response, TestProfileAdministrationDeleteTestProfileDefaultResponse, TestProfileAdministrationGetTestProfile200Response, TestProfileAdministrationGetTestProfileDefaultResponse, TestProfileAdministrationListTestProfiles200Response, TestProfileAdministrationListTestProfilesDefaultResponse, TriggerAdministrationGetTrigger200Response, TriggerAdministrationGetTriggerDefaultResponse, TriggerAdministrationCreateOrUpdateTrigger200Response, TriggerAdministrationCreateOrUpdateTrigger201Response, TriggerAdministrationCreateOrUpdateTriggerDefaultResponse, TriggerAdministrationDeleteTrigger204Response, TriggerAdministrationDeleteTriggerDefaultResponse, TriggerAdministrationListTrigger200Response, TriggerAdministrationListTriggerDefaultResponse, NotificationRuleAdministrationGetNotificationRule200Response, NotificationRuleAdministrationGetNotificationRuleDefaultResponse, NotificationRuleAdministrationCreateOrUpdateNotificationRule200Response, NotificationRuleAdministrationCreateOrUpdateNotificationRule201Response, NotificationRuleAdministrationCreateOrUpdateNotificationRuleDefaultResponse, NotificationRuleAdministrationDeleteNotificationRule204Response, NotificationRuleAdministrationDeleteNotificationRuleDefaultResponse, NotificationRuleAdministrationListNotificationRule200Response, NotificationRuleAdministrationListNotificationRuleDefaultResponse, LoadTestRunGetTestRun200Response, LoadTestRunGetTestRunDefaultResponse, LoadTestRunCreateOrUpdateTestRun200Response, LoadTestRunCreateOrUpdateTestRun201Response, LoadTestRunCreateOrUpdateTestRunDefaultResponse, LoadTestRunDeleteTestRun204Response, LoadTestRunDeleteTestRunDefaultResponse, LoadTestRunListTestRuns200Response, LoadTestRunListTestRunsDefaultResponse, LoadTestRunGetTestRunFile200Response, LoadTestRunGetTestRunFileDefaultResponse, LoadTestRunStop200Response, LoadTestRunStopDefaultResponse, LoadTestRunGetLatestInsights200Response, LoadTestRunGetLatestInsightsDefaultResponse, LoadTestRunUpdateLatestInsights200Response, LoadTestRunUpdateLatestInsightsDefaultResponse, LoadTestRunGenerateInsights202Response, LoadTestRunGenerateInsightsLogicalResponse, LoadTestRunGenerateInsightsDefaultResponse, LoadTestRunListMetricNamespaces200Response, LoadTestRunListMetricNamespacesDefaultResponse, LoadTestRunListMetricDefinitions200Response, LoadTestRunListMetricDefinitionsDefaultResponse, LoadTestRunListMetrics200Response, LoadTestRunListMetricsDefaultResponse, LoadTestRunListMetricDimensionValues200Response, LoadTestRunListMetricDimensionValuesDefaultResponse, LoadTestRunCreateOrUpdateAppComponents200Response, LoadTestRunCreateOrUpdateAppComponents201Response, LoadTestRunCreateOrUpdateAppComponentsDefaultResponse, LoadTestRunGetAppComponents200Response, LoadTestRunGetAppComponentsDefaultResponse, LoadTestRunCreateOrUpdateServerMetricsConfig200Response, LoadTestRunCreateOrUpdateServerMetricsConfig201Response, LoadTestRunCreateOrUpdateServerMetricsConfigDefaultResponse, LoadTestRunGetServerMetricsConfig200Response, LoadTestRunGetServerMetricsConfigDefaultResponse, TestProfileRunAdministrationGetTestProfileRun200Response, TestProfileRunAdministrationGetTestProfileRunDefaultResponse, TestProfileRunAdministrationCreateOrUpdateTestProfileRun200Response, TestProfileRunAdministrationCreateOrUpdateTestProfileRun201Response, TestProfileRunAdministrationCreateOrUpdateTestProfileRunDefaultResponse, TestProfileRunAdministrationDeleteTestProfileRun204Response, TestProfileRunAdministrationDeleteTestProfileRunDefaultResponse, TestProfileRunAdministrationStop200Response, TestProfileRunAdministrationStopDefaultResponse, TestProfileRunAdministrationListTestProfileRuns200Response, TestProfileRunAdministrationListTestProfileRunsDefaultResponse } from "./responses.js";
|
|
2
|
+
export declare function isUnexpected(response: OperationsGetStatus200Response | OperationsGetStatusDefaultResponse): response is OperationsGetStatusDefaultResponse;
|
|
2
3
|
export declare function isUnexpected(response: LoadTestAdministrationCreateOrUpdateTest200Response | LoadTestAdministrationCreateOrUpdateTest201Response | LoadTestAdministrationCreateOrUpdateTestDefaultResponse): response is LoadTestAdministrationCreateOrUpdateTestDefaultResponse;
|
|
3
4
|
export declare function isUnexpected(response: LoadTestAdministrationDeleteTest204Response | LoadTestAdministrationDeleteTestDefaultResponse): response is LoadTestAdministrationDeleteTestDefaultResponse;
|
|
4
5
|
export declare function isUnexpected(response: LoadTestAdministrationGetTest200Response | LoadTestAdministrationGetTestDefaultResponse): response is LoadTestAdministrationGetTestDefaultResponse;
|
|
5
6
|
export declare function isUnexpected(response: LoadTestAdministrationListTests200Response | LoadTestAdministrationListTestsDefaultResponse): response is LoadTestAdministrationListTestsDefaultResponse;
|
|
7
|
+
export declare function isUnexpected(response: LoadTestAdministrationCloneTest202Response | LoadTestAdministrationCloneTestLogicalResponse | LoadTestAdministrationCloneTestDefaultResponse): response is LoadTestAdministrationCloneTestDefaultResponse;
|
|
8
|
+
export declare function isUnexpected(response: LoadTestAdministrationGenerateTestPlanRecommendations202Response | LoadTestAdministrationGenerateTestPlanRecommendationsLogicalResponse | LoadTestAdministrationGenerateTestPlanRecommendationsDefaultResponse): response is LoadTestAdministrationGenerateTestPlanRecommendationsDefaultResponse;
|
|
6
9
|
export declare function isUnexpected(response: LoadTestAdministrationUploadTestFile201Response | LoadTestAdministrationUploadTestFileDefaultResponse): response is LoadTestAdministrationUploadTestFileDefaultResponse;
|
|
7
10
|
export declare function isUnexpected(response: LoadTestAdministrationGetTestFile200Response | LoadTestAdministrationGetTestFileDefaultResponse): response is LoadTestAdministrationGetTestFileDefaultResponse;
|
|
8
11
|
export declare function isUnexpected(response: LoadTestAdministrationDeleteTestFile204Response | LoadTestAdministrationDeleteTestFileDefaultResponse): response is LoadTestAdministrationDeleteTestFileDefaultResponse;
|
|
@@ -15,12 +18,23 @@ export declare function isUnexpected(response: TestProfileAdministrationCreateOr
|
|
|
15
18
|
export declare function isUnexpected(response: TestProfileAdministrationDeleteTestProfile204Response | TestProfileAdministrationDeleteTestProfileDefaultResponse): response is TestProfileAdministrationDeleteTestProfileDefaultResponse;
|
|
16
19
|
export declare function isUnexpected(response: TestProfileAdministrationGetTestProfile200Response | TestProfileAdministrationGetTestProfileDefaultResponse): response is TestProfileAdministrationGetTestProfileDefaultResponse;
|
|
17
20
|
export declare function isUnexpected(response: TestProfileAdministrationListTestProfiles200Response | TestProfileAdministrationListTestProfilesDefaultResponse): response is TestProfileAdministrationListTestProfilesDefaultResponse;
|
|
21
|
+
export declare function isUnexpected(response: TriggerAdministrationGetTrigger200Response | TriggerAdministrationGetTriggerDefaultResponse): response is TriggerAdministrationGetTriggerDefaultResponse;
|
|
22
|
+
export declare function isUnexpected(response: TriggerAdministrationCreateOrUpdateTrigger200Response | TriggerAdministrationCreateOrUpdateTrigger201Response | TriggerAdministrationCreateOrUpdateTriggerDefaultResponse): response is TriggerAdministrationCreateOrUpdateTriggerDefaultResponse;
|
|
23
|
+
export declare function isUnexpected(response: TriggerAdministrationDeleteTrigger204Response | TriggerAdministrationDeleteTriggerDefaultResponse): response is TriggerAdministrationDeleteTriggerDefaultResponse;
|
|
24
|
+
export declare function isUnexpected(response: TriggerAdministrationListTrigger200Response | TriggerAdministrationListTriggerDefaultResponse): response is TriggerAdministrationListTriggerDefaultResponse;
|
|
25
|
+
export declare function isUnexpected(response: NotificationRuleAdministrationGetNotificationRule200Response | NotificationRuleAdministrationGetNotificationRuleDefaultResponse): response is NotificationRuleAdministrationGetNotificationRuleDefaultResponse;
|
|
26
|
+
export declare function isUnexpected(response: NotificationRuleAdministrationCreateOrUpdateNotificationRule200Response | NotificationRuleAdministrationCreateOrUpdateNotificationRule201Response | NotificationRuleAdministrationCreateOrUpdateNotificationRuleDefaultResponse): response is NotificationRuleAdministrationCreateOrUpdateNotificationRuleDefaultResponse;
|
|
27
|
+
export declare function isUnexpected(response: NotificationRuleAdministrationDeleteNotificationRule204Response | NotificationRuleAdministrationDeleteNotificationRuleDefaultResponse): response is NotificationRuleAdministrationDeleteNotificationRuleDefaultResponse;
|
|
28
|
+
export declare function isUnexpected(response: NotificationRuleAdministrationListNotificationRule200Response | NotificationRuleAdministrationListNotificationRuleDefaultResponse): response is NotificationRuleAdministrationListNotificationRuleDefaultResponse;
|
|
18
29
|
export declare function isUnexpected(response: LoadTestRunGetTestRun200Response | LoadTestRunGetTestRunDefaultResponse): response is LoadTestRunGetTestRunDefaultResponse;
|
|
19
30
|
export declare function isUnexpected(response: LoadTestRunCreateOrUpdateTestRun200Response | LoadTestRunCreateOrUpdateTestRun201Response | LoadTestRunCreateOrUpdateTestRunDefaultResponse): response is LoadTestRunCreateOrUpdateTestRunDefaultResponse;
|
|
20
31
|
export declare function isUnexpected(response: LoadTestRunDeleteTestRun204Response | LoadTestRunDeleteTestRunDefaultResponse): response is LoadTestRunDeleteTestRunDefaultResponse;
|
|
21
32
|
export declare function isUnexpected(response: LoadTestRunListTestRuns200Response | LoadTestRunListTestRunsDefaultResponse): response is LoadTestRunListTestRunsDefaultResponse;
|
|
22
33
|
export declare function isUnexpected(response: LoadTestRunGetTestRunFile200Response | LoadTestRunGetTestRunFileDefaultResponse): response is LoadTestRunGetTestRunFileDefaultResponse;
|
|
23
34
|
export declare function isUnexpected(response: LoadTestRunStop200Response | LoadTestRunStopDefaultResponse): response is LoadTestRunStopDefaultResponse;
|
|
35
|
+
export declare function isUnexpected(response: LoadTestRunGetLatestInsights200Response | LoadTestRunGetLatestInsightsDefaultResponse): response is LoadTestRunGetLatestInsightsDefaultResponse;
|
|
36
|
+
export declare function isUnexpected(response: LoadTestRunUpdateLatestInsights200Response | LoadTestRunUpdateLatestInsightsDefaultResponse): response is LoadTestRunUpdateLatestInsightsDefaultResponse;
|
|
37
|
+
export declare function isUnexpected(response: LoadTestRunGenerateInsights202Response | LoadTestRunGenerateInsightsLogicalResponse | LoadTestRunGenerateInsightsDefaultResponse): response is LoadTestRunGenerateInsightsDefaultResponse;
|
|
24
38
|
export declare function isUnexpected(response: LoadTestRunListMetricNamespaces200Response | LoadTestRunListMetricNamespacesDefaultResponse): response is LoadTestRunListMetricNamespacesDefaultResponse;
|
|
25
39
|
export declare function isUnexpected(response: LoadTestRunListMetricDefinitions200Response | LoadTestRunListMetricDefinitionsDefaultResponse): response is LoadTestRunListMetricDefinitionsDefaultResponse;
|
|
26
40
|
export declare function isUnexpected(response: LoadTestRunListMetrics200Response | LoadTestRunListMetricsDefaultResponse): response is LoadTestRunListMetricsDefaultResponse;
|
|
@@ -34,12 +48,4 @@ export declare function isUnexpected(response: TestProfileRunAdministrationCreat
|
|
|
34
48
|
export declare function isUnexpected(response: TestProfileRunAdministrationDeleteTestProfileRun204Response | TestProfileRunAdministrationDeleteTestProfileRunDefaultResponse): response is TestProfileRunAdministrationDeleteTestProfileRunDefaultResponse;
|
|
35
49
|
export declare function isUnexpected(response: TestProfileRunAdministrationStop200Response | TestProfileRunAdministrationStopDefaultResponse): response is TestProfileRunAdministrationStopDefaultResponse;
|
|
36
50
|
export declare function isUnexpected(response: TestProfileRunAdministrationListTestProfileRuns200Response | TestProfileRunAdministrationListTestProfileRunsDefaultResponse): response is TestProfileRunAdministrationListTestProfileRunsDefaultResponse;
|
|
37
|
-
export declare function isUnexpected(response: TriggerAdministrationGetTrigger200Response | TriggerAdministrationGetTriggerDefaultResponse): response is TriggerAdministrationGetTriggerDefaultResponse;
|
|
38
|
-
export declare function isUnexpected(response: TriggerAdministrationCreateOrUpdateTrigger200Response | TriggerAdministrationCreateOrUpdateTrigger201Response | TriggerAdministrationCreateOrUpdateTriggerDefaultResponse): response is TriggerAdministrationCreateOrUpdateTriggerDefaultResponse;
|
|
39
|
-
export declare function isUnexpected(response: TriggerAdministrationDeleteTrigger204Response | TriggerAdministrationDeleteTriggerDefaultResponse): response is TriggerAdministrationDeleteTriggerDefaultResponse;
|
|
40
|
-
export declare function isUnexpected(response: TriggerAdministrationListTrigger200Response | TriggerAdministrationListTriggerDefaultResponse): response is TriggerAdministrationListTriggerDefaultResponse;
|
|
41
|
-
export declare function isUnexpected(response: NotificationRuleAdministrationGetNotificationRule200Response | NotificationRuleAdministrationGetNotificationRuleDefaultResponse): response is NotificationRuleAdministrationGetNotificationRuleDefaultResponse;
|
|
42
|
-
export declare function isUnexpected(response: NotificationRuleAdministrationCreateOrUpdateNotificationRule200Response | NotificationRuleAdministrationCreateOrUpdateNotificationRule201Response | NotificationRuleAdministrationCreateOrUpdateNotificationRuleDefaultResponse): response is NotificationRuleAdministrationCreateOrUpdateNotificationRuleDefaultResponse;
|
|
43
|
-
export declare function isUnexpected(response: NotificationRuleAdministrationDeleteNotificationRule204Response | NotificationRuleAdministrationDeleteNotificationRuleDefaultResponse): response is NotificationRuleAdministrationDeleteNotificationRuleDefaultResponse;
|
|
44
|
-
export declare function isUnexpected(response: NotificationRuleAdministrationListNotificationRule200Response | NotificationRuleAdministrationListNotificationRuleDefaultResponse): response is NotificationRuleAdministrationListNotificationRuleDefaultResponse;
|
|
45
51
|
//# sourceMappingURL=isUnexpected.d.ts.map
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
const responseMap = {
|
|
4
|
+
"GET /operations/{operationId}": ["200"],
|
|
4
5
|
"PATCH /tests/{testId}": ["200", "201"],
|
|
5
6
|
"DELETE /tests/{testId}": ["204"],
|
|
6
7
|
"GET /tests/{testId}": ["200"],
|
|
7
8
|
"GET /tests": ["200"],
|
|
9
|
+
"GET /tests/{testId}:clone": ["200", "202"],
|
|
10
|
+
"POST /tests/{testId}:clone": ["202"],
|
|
11
|
+
"GET /tests/{testId}:generateTestPlanRecommendations": ["200", "202"],
|
|
12
|
+
"POST /tests/{testId}:generateTestPlanRecommendations": ["202"],
|
|
8
13
|
"PUT /tests/{testId}/files/{fileName}": ["201"],
|
|
9
14
|
"GET /tests/{testId}/files/{fileName}": ["200"],
|
|
10
15
|
"DELETE /tests/{testId}/files/{fileName}": ["204"],
|
|
@@ -17,12 +22,24 @@ const responseMap = {
|
|
|
17
22
|
"DELETE /test-profiles/{testProfileId}": ["204"],
|
|
18
23
|
"GET /test-profiles/{testProfileId}": ["200"],
|
|
19
24
|
"GET /test-profiles": ["200"],
|
|
25
|
+
"GET /triggers/{triggerId}": ["200"],
|
|
26
|
+
"PATCH /triggers/{triggerId}": ["200", "201"],
|
|
27
|
+
"DELETE /triggers/{triggerId}": ["204"],
|
|
28
|
+
"GET /triggers": ["200"],
|
|
29
|
+
"GET /notification-rules/{notificationRuleId}": ["200"],
|
|
30
|
+
"PATCH /notification-rules/{notificationRuleId}": ["200", "201"],
|
|
31
|
+
"DELETE /notification-rules/{notificationRuleId}": ["204"],
|
|
32
|
+
"GET /notification-rules": ["200"],
|
|
20
33
|
"GET /test-runs/{testRunId}": ["200"],
|
|
21
34
|
"PATCH /test-runs/{testRunId}": ["200", "201"],
|
|
22
35
|
"DELETE /test-runs/{testRunId}": ["204"],
|
|
23
36
|
"GET /test-runs": ["200"],
|
|
24
37
|
"GET /test-runs/{testRunId}/files/{fileName}": ["200"],
|
|
25
38
|
"POST /test-runs/{testRunId}:stop": ["200"],
|
|
39
|
+
"GET /test-runs/{testRunId}/insights/latest": ["200"],
|
|
40
|
+
"PATCH /test-runs/{testRunId}/insights/latest": ["200"],
|
|
41
|
+
"GET /test-runs/{testRunId}/insights:generate": ["200", "202"],
|
|
42
|
+
"POST /test-runs/{testRunId}/insights:generate": ["202"],
|
|
26
43
|
"GET /test-runs/{testRunId}/metric-namespaces": ["200"],
|
|
27
44
|
"GET /test-runs/{testRunId}/metric-definitions": ["200"],
|
|
28
45
|
"POST /test-runs/{testRunId}/metrics": ["200"],
|
|
@@ -36,18 +53,10 @@ const responseMap = {
|
|
|
36
53
|
"DELETE /test-profile-runs/{testProfileRunId}": ["204"],
|
|
37
54
|
"POST /test-profile-runs/{testProfileRunId}:stop": ["200"],
|
|
38
55
|
"GET /test-profile-runs": ["200"],
|
|
39
|
-
"GET /triggers/{triggerId}": ["200"],
|
|
40
|
-
"PATCH /triggers/{triggerId}": ["200", "201"],
|
|
41
|
-
"DELETE /triggers/{triggerId}": ["204"],
|
|
42
|
-
"GET /triggers": ["200"],
|
|
43
|
-
"GET /notification-rules/{notificationRuleId}": ["200"],
|
|
44
|
-
"PATCH /notification-rules/{notificationRuleId}": ["200", "201"],
|
|
45
|
-
"DELETE /notification-rules/{notificationRuleId}": ["204"],
|
|
46
|
-
"GET /notification-rules": ["200"],
|
|
47
56
|
};
|
|
48
57
|
export function isUnexpected(response) {
|
|
49
58
|
const lroOriginal = response.headers["x-ms-original-url"];
|
|
50
|
-
const url = new URL(lroOriginal
|
|
59
|
+
const url = new URL(lroOriginal ?? response.request.url);
|
|
51
60
|
const method = response.request.method;
|
|
52
61
|
let pathDetails = responseMap[`${method} ${url.pathname}`];
|
|
53
62
|
if (!pathDetails) {
|
|
@@ -56,7 +65,6 @@ export function isUnexpected(response) {
|
|
|
56
65
|
return !pathDetails.includes(response.status);
|
|
57
66
|
}
|
|
58
67
|
function getParametrizedPathSuccess(method, path) {
|
|
59
|
-
var _a, _b, _c, _d;
|
|
60
68
|
const pathParts = path.split("/");
|
|
61
69
|
// Traverse list to match the longest candidate
|
|
62
70
|
// matchedLen: the length of candidate path
|
|
@@ -75,13 +83,13 @@ function getParametrizedPathSuccess(method, path) {
|
|
|
75
83
|
// track if we have found a match to return the values found.
|
|
76
84
|
let found = true;
|
|
77
85
|
for (let i = candidateParts.length - 1, j = pathParts.length - 1; i >= 1 && j >= 1; i--, j--) {
|
|
78
|
-
if (
|
|
79
|
-
const start = candidateParts[i].indexOf("}") + 1, end =
|
|
86
|
+
if (candidateParts[i]?.startsWith("{") && candidateParts[i]?.indexOf("}") !== -1) {
|
|
87
|
+
const start = candidateParts[i].indexOf("}") + 1, end = candidateParts[i]?.length;
|
|
80
88
|
// If the current part of the candidate is a "template" part
|
|
81
89
|
// Try to use the suffix of pattern to match the path
|
|
82
90
|
// {guid} ==> $
|
|
83
91
|
// {guid}:export ==> :export$
|
|
84
|
-
const isMatched = new RegExp(`${
|
|
92
|
+
const isMatched = new RegExp(`${candidateParts[i]?.slice(start, end)}`).test(pathParts[j] || "");
|
|
85
93
|
if (!isMatched) {
|
|
86
94
|
found = false;
|
|
87
95
|
break;
|