From b1d0a39afbbb2ffcec3af6fa1631b5a389cd5f6b Mon Sep 17 00:00:00 2001 From: Emma Zhu Date: Mon, 16 Dec 2024 15:00:30 +0800 Subject: [PATCH] Fix test failures --- tests/blob/apis/blobbatch.test.ts | 20 +--- tests/blob/apis/service.test.ts | 8 +- tests/blob/blobCorsRequest.test.ts | 43 ++++---- tests/blob/oauth.test.ts | 8 +- tests/blob/sas.test.ts | 159 ++++++++--------------------- tests/testutils.ts | 14 ++- 6 files changed, 85 insertions(+), 167 deletions(-) diff --git a/tests/blob/apis/blobbatch.test.ts b/tests/blob/apis/blobbatch.test.ts index 594dcb5a6..109255c04 100644 --- a/tests/blob/apis/blobbatch.test.ts +++ b/tests/blob/apis/blobbatch.test.ts @@ -73,9 +73,7 @@ describe("Blob batch API", () => { it("SubmitBatch batch deleting @loki @sql", async () => { const blobBatchClient = serviceClient.getBlobBatchClient(); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sharedKeyCredential = factories[factories.length - 1]; + const sharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; // Submit batch request and verify response. const urls = blobClients.map((b) => b.url); @@ -107,9 +105,7 @@ describe("Blob batch API", () => { it("SubmitBatch within container scope - batch set tier @loki @sql", async () => { const blobBatchClient = containerClient.getBlobBatchClient(); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sharedKeyCredential = factories[factories.length - 1]; + const sharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; // Submit batch request and verify response. const urls = blobClients.map((b) => b.url); @@ -136,9 +132,7 @@ describe("Blob batch API", () => { it("SubmitBatch batch set tier @loki @sql", async () => { const blobBatchClient = serviceClient.getBlobBatchClient(); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sharedKeyCredential = factories[factories.length - 1]; + const sharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; // Submit batch request and verify response. const urls = blobClients.map((b) => b.url); @@ -173,9 +167,7 @@ describe("Blob batch API", () => { const blobclientsNew: BlobClient[] = []; blobclientsNew.push(blockBlobClientNew); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sharedKeyCredential = factories[factories.length - 1]; + const sharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; // Submit batch request and verify response. const urls = blobclientsNew.map((b) => b.url); @@ -332,9 +324,7 @@ describe("Blob batch API", () => { it("SubmitBatch batch with different operations @loki @sql", async () => { const blobBatchClient = serviceClient.getBlobBatchClient(); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sharedKeyCredential = factories[factories.length - 1]; + const sharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; // Submit batch request and verify response. const urls = blobClients.map((b) => b.url); diff --git a/tests/blob/apis/service.test.ts b/tests/blob/apis/service.test.ts index cf9e94850..16c04e243 100644 --- a/tests/blob/apis/service.test.ts +++ b/tests/blob/apis/service.test.ts @@ -66,7 +66,7 @@ describe("ServiceAPIs", () => { await serviceClient.getUserDelegationKey(startTime, expiryTime); assert.fail("Should fail to invoke getUserDelegationKey with account key credentials") } catch (error) { - assert.strictEqual((error as any).details.AuthenticationErrorDetail, "Only authentication scheme Bearer is supported"); + assert.strictEqual((error as any).details.authenticationErrorDetail, "Only authentication scheme Bearer is supported"); } }); @@ -77,9 +77,7 @@ describe("ServiceAPIs", () => { const sasTokenExpiry = new Date(); sasTokenExpiry.setDate(sasTokenExpiry.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sharedKeyCredential = factories[factories.length - 1]; + const sharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; const sas = generateAccountSASQueryParameters( { @@ -107,7 +105,7 @@ describe("ServiceAPIs", () => { await serviceClientWithSAS.getUserDelegationKey(skStart, skExpiry); assert.fail("Should fail to invoke getUserDelegationKey with SAS token credentials") } catch (error) { - assert.strictEqual((error as any).details.AuthenticationErrorDetail, "Only authentication scheme Bearer is supported"); + assert.strictEqual((error as any).details.authenticationErrorDetail, "Only authentication scheme Bearer is supported"); } }); diff --git a/tests/blob/blobCorsRequest.test.ts b/tests/blob/blobCorsRequest.test.ts index cd54d667f..c2a394337 100644 --- a/tests/blob/blobCorsRequest.test.ts +++ b/tests/blob/blobCorsRequest.test.ts @@ -11,6 +11,7 @@ import BlobTestServerFactory from "../BlobTestServerFactory"; import { EMULATOR_ACCOUNT_KEY, EMULATOR_ACCOUNT_NAME, + getResponseHeader, sleep } from "../testutils"; import OPTIONSRequestPolicyFactory from "./RequestPolicy/OPTIONSRequestPolicyFactory"; @@ -629,9 +630,9 @@ describe("Blob Cors requests test", () => { const res: any = await serviceClientWithOrigin.getProperties(); - assert.ok(res["access-control-allow-origin"] === undefined); - assert.ok(res["access-control-expose-headers"] === undefined); - assert.ok(res.vary === undefined); + assert.ok(getResponseHeader(res, "access-control-allow-origin") === undefined); + assert.ok(getResponseHeader(res, "access-control-expose-headers") === undefined); + assert.ok(getResponseHeader(res, "vary") === undefined); }); it("Service with mismatching cors rules should response header Vary @loki @sql", async () => { @@ -667,10 +668,10 @@ describe("Blob Cors requests test", () => { const serviceClientWithOrigin = new BlobServiceClient(baseURL, pipeline); let res: any = await serviceClientWithOrigin.getProperties(); - assert.ok(res.vary !== undefined); + assert.ok(getResponseHeader(res, "vary") !== undefined); res = await serviceClient.getProperties(); - assert.ok(res.vary === undefined); + assert.ok(getResponseHeader(res, "vary") === undefined); }); it("Request Match rule exists that allows all origins (*) @loki @sql", async () => { @@ -706,14 +707,14 @@ describe("Blob Cors requests test", () => { const serviceClientWithOrigin = new BlobServiceClient(baseURL, pipeline); let res: any = await serviceClientWithOrigin.getProperties(); - assert.ok(res["access-control-allow-origin"] === "*"); - assert.ok(res.vary === undefined); - assert.ok(res["access-control-expose-headers"] !== undefined); + assert.ok(getResponseHeader(res, "access-control-allow-origin") === "*"); + assert.ok(getResponseHeader(res, "vary") === undefined); + assert.ok(getResponseHeader(res, "access-control-expose-headers") !== undefined); res = await serviceClient.getProperties(); - assert.ok(res["access-control-allow-origin"] === undefined); - assert.ok(res.vary === undefined); - assert.ok(res["access-control-expose-headers"] === undefined); + assert.ok(getResponseHeader(res, "access-control-allow-origin") === undefined); + assert.ok(getResponseHeader(res, "vary") === undefined); + assert.ok(getResponseHeader(res, "access-control-expose-headers") === undefined); }); it("Request Match rule exists for exact origin @loki @sql", async () => { @@ -749,9 +750,9 @@ describe("Blob Cors requests test", () => { const serviceClientWithOrigin = new BlobServiceClient(baseURL, pipeline); const res: any = await serviceClientWithOrigin.getProperties(); - assert.ok(res["access-control-allow-origin"] === origin); - assert.ok(res.vary !== undefined); - assert.ok(res["access-control-expose-headers"] !== undefined); + assert.ok(getResponseHeader(res, "access-control-allow-origin") === origin); + assert.ok(getResponseHeader(res, "vary") !== undefined); + assert.ok(getResponseHeader(res, "access-control-expose-headers") !== undefined); }); it("Requests with error response should apply for CORS @loki @sql", async () => { @@ -793,13 +794,11 @@ describe("Blob Cors requests test", () => { await containerClientWithOrigin.getProperties(); } catch (err) { assert.ok( - err.response.headers._headersMap["access-control-allow-origin"] - .value === origin + err.response.headers.get("access-control-allow-origin") === origin ); - assert.ok(err.response.headers._headersMap.vary !== undefined); + assert.ok(err.response.headers.get("vary") !== undefined); assert.ok( - err.response.headers._headersMap["access-control-expose-headers"] !== - undefined + err.response.headers.get("access-control-expose-headers") !== undefined ); } }); @@ -846,8 +845,8 @@ describe("Blob Cors requests test", () => { const serviceClientWithOrigin = new BlobServiceClient(baseURL, pipeline); const res: any = await serviceClientWithOrigin.getProperties(); - assert.ok(res["access-control-allow-origin"] === origin); - assert.ok(res.vary !== undefined); - assert.ok(res["access-control-expose-headers"] !== undefined); + assert.ok(getResponseHeader(res, "access-control-allow-origin") === origin); + assert.ok(getResponseHeader(res, "vary") !== undefined); + assert.ok(getResponseHeader(res, "access-control-expose-headers") !== undefined); }); }); diff --git a/tests/blob/oauth.test.ts b/tests/blob/oauth.test.ts index ad5b8fdaf..76f6e1040 100644 --- a/tests/blob/oauth.test.ts +++ b/tests/blob/oauth.test.ts @@ -578,7 +578,7 @@ describe("Blob OAuth Basic", () => { err.message.includes("Server failed to authenticate the request."), true ); - assert.deepStrictEqual(err.details.AuthenticationErrorDetail.includes("audience"), true); + assert.deepStrictEqual(err.details.authenticationErrorDetail.includes("audience"), true); return; } assert.fail(); @@ -653,7 +653,7 @@ describe("Blob OAuth Basic", () => { err.message.includes("Server failed to authenticate the request."), true ); - assert.deepStrictEqual(err.details.AuthenticationErrorDetail.includes("issuer"), true); + assert.deepStrictEqual(err.details.authenticationErrorDetail.includes("issuer"), true); return; } assert.fail(); @@ -691,7 +691,7 @@ describe("Blob OAuth Basic", () => { err.message.includes("Server failed to authenticate the request."), true ); - assert.deepStrictEqual(err.details.AuthenticationErrorDetail.includes("Lifetime"), true); + assert.deepStrictEqual(err.details.authenticationErrorDetail.includes("Lifetime"), true); return; } assert.fail(); @@ -729,7 +729,7 @@ describe("Blob OAuth Basic", () => { err.message.includes("Server failed to authenticate the request."), true ); - assert.deepStrictEqual(err.details.AuthenticationErrorDetail.includes("expire"), true); + assert.deepStrictEqual(err.details.authenticationErrorDetail.includes("expire"), true); return; } assert.fail(); diff --git a/tests/blob/sas.test.ts b/tests/blob/sas.test.ts index 956f10f2d..213c290b6 100644 --- a/tests/blob/sas.test.ts +++ b/tests/blob/sas.test.ts @@ -123,8 +123,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const startDate = new Date(2022, 3, 16, 14, 31, 48, 0); const endDate = new Date(2022, 3, 17, 14, 31, 48, 0); - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -182,9 +181,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -219,9 +216,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -263,9 +258,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -300,9 +293,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -337,9 +328,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -377,9 +366,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -425,9 +412,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -480,9 +465,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -527,9 +510,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -575,9 +556,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -630,9 +609,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const sas = generateAccountSASQueryParameters( { @@ -681,9 +658,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -719,9 +694,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -777,9 +750,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -842,9 +813,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -890,9 +859,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -938,9 +905,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClientInvalid as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClientInvalid.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -988,9 +953,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClientSecondKey as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClientSecondKey.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1026,9 +989,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1092,9 +1053,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1161,9 +1120,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1228,9 +1185,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1294,9 +1249,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1361,9 +1314,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container-with-dash"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1432,9 +1383,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1485,9 +1434,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1532,9 +1479,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1586,9 +1531,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1631,9 +1574,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1678,9 +1619,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1732,9 +1671,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1777,9 +1714,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const storageSharedKeyCredential = factories[factories.length - 1]; + const storageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("container"); const containerClient = serviceClient.getContainerClient(containerName); @@ -1845,9 +1780,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sourceStorageSharedKeyCredential = factories[factories.length - 1]; + const sourceStorageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("con"); const sourceContainerClient = serviceClient.getContainerClient( @@ -2004,9 +1937,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sourceStorageSharedKeyCredential = factories[factories.length - 1]; + const sourceStorageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("con"); const sourceContainerClient = serviceClient.getContainerClient( @@ -2079,9 +2010,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sourceStorageSharedKeyCredential = factories[factories.length - 1]; + const sourceStorageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("con"); const sourceContainerClient = serviceClient.getContainerClient( @@ -2132,9 +2061,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const tmr = new Date(); tmr.setDate(tmr.getDate() + 1); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sourceStorageSharedKeyCredential = factories[factories.length - 1]; + const sourceStorageSharedKeyCredential = serviceClient.credential; const containerName = getUniqueName("con"); const sourceContainerClient = serviceClient.getContainerClient( @@ -2254,9 +2181,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const blockBlobClient = containerClient.getBlockBlobClient(blockBlobName); await blockBlobClient.upload("Hello, world", 12, { tags: tags }); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sourceStorageSharedKeyCredential = factories[factories.length - 1]; + const sourceStorageSharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; const sasURL = generateAccountSASQueryParameters({ expiresOn: tmr, @@ -2298,9 +2223,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const blockBlobClient = containerClient.getBlockBlobClient(blockBlobName); await blockBlobClient.upload("Hello, world", 12, { tags: tags }); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sourceStorageSharedKeyCredential = factories[factories.length - 1]; + const sourceStorageSharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; const sasURL = generateAccountSASQueryParameters({ expiresOn: tmr, @@ -2374,9 +2297,7 @@ describe("Shared Access Signature (SAS) authentication", () => { const blockBlobClient = containerClient.getBlockBlobClient(blockBlobName); await blockBlobClient.upload("Hello, world", 12); - // By default, credential is always the last element of pipeline factories - const factories = (serviceClient as any).pipeline.factories; - const sourceStorageSharedKeyCredential = factories[factories.length - 1]; + const sourceStorageSharedKeyCredential = serviceClient.credential as StorageSharedKeyCredential; const sasURL = generateAccountSASQueryParameters({ expiresOn: tmr, diff --git a/tests/testutils.ts b/tests/testutils.ts index 86c214622..e3a1f2a92 100644 --- a/tests/testutils.ts +++ b/tests/testutils.ts @@ -145,7 +145,7 @@ export async function createRandomLocalFile( ws.on("open", () => { // tslint:disable-next-line:no-empty - while (offsetInMB++ < blockNumber && ws.write(randomValueHex())) {} + while (offsetInMB++ < blockNumber && ws.write(randomValueHex())) { } if (offsetInMB >= blockNumber) { ws.end(); } @@ -153,7 +153,7 @@ export async function createRandomLocalFile( ws.on("drain", () => { // tslint:disable-next-line:no-empty - while (offsetInMB++ < blockNumber && ws.write(randomValueHex())) {} + while (offsetInMB++ < blockNumber && ws.write(randomValueHex())) { } if (offsetInMB >= blockNumber) { ws.end(); } @@ -251,3 +251,13 @@ export function overrideRequest( ); }; } + +export function getResponseHeader(res: any, headerName: string): string | undefined { + return res._response.headers.get(headerName); + if (res._response.headers._headersMap[headerName] === undefined) { + return undefined; + } + else { + return res._response.headers._headersMap[headerName].value; + } +} \ No newline at end of file