diff --git a/tests/blob/apis/appendblob.test.ts b/tests/blob/apis/appendblob.test.ts index 64ff23667..c0ec6b97f 100644 --- a/tests/blob/apis/appendblob.test.ts +++ b/tests/blob/apis/appendblob.test.ts @@ -133,6 +133,32 @@ describe("AppendBlobAPIs", () => { assert.deepStrictEqual(properties.blobCommittedBlockCount, 0); }); + it("Create append blob should fail when metadata names are invalid C# identifiers @loki @sql", async () => { + let invalidNames = [ + "1invalid", + "invalid.name", + "invalid-name", + ] + for (let i = 0; i < invalidNames.length; i++) { + const metadata = { + [invalidNames[i]]: "value" + }; + let hasError = false; + try { + await appendBlobClient.create({ + metadata: metadata + }); + } catch (error) { + assert.deepStrictEqual(error.statusCode, 400); + assert.strictEqual(error.code, 'InvalidMetadata'); + hasError = true; + } + if (!hasError) { + assert.fail(); + } + } + }); + it("Delete append blob should work @loki", async () => { await appendBlobClient.create(); await appendBlobClient.delete(); diff --git a/tests/blob/apis/blob.test.ts b/tests/blob/apis/blob.test.ts index 9e77d0ef5..5574a4f81 100644 --- a/tests/blob/apis/blob.test.ts +++ b/tests/blob/apis/blob.test.ts @@ -511,7 +511,7 @@ describe("BlobAPIs", () => { await blockBlobClient.upload(content, content.length, { metadata }); } catch (error) { assert.deepStrictEqual(error.statusCode, 400); - assert.strictEqual(error.code, 'InvalidHeaderValue'); + assert.strictEqual(error.code, 'InvalidMetadata'); hasError = true; } if (!hasError) diff --git a/tests/blob/apis/blockblob.test.ts b/tests/blob/apis/blockblob.test.ts index b483a2e7a..a23a09b13 100644 --- a/tests/blob/apis/blockblob.test.ts +++ b/tests/blob/apis/blockblob.test.ts @@ -151,6 +151,32 @@ describe("BlockBlobAPIs", () => { ); }); + it("upload should fail when metadata names are invalid C# identifiers @loki @sql", async () => { + let invalidNames = [ + "1invalid", + "invalid.name", + "invalid-name", + ] + for (let i = 0; i < invalidNames.length; i++) { + const metadata = { + [invalidNames[i]]: "value" + }; + let hasError = false; + try { + await blockBlobClient.upload('b', 1, { + metadata: metadata + }); + } catch (error) { + assert.deepStrictEqual(error.statusCode, 400); + assert.strictEqual(error.code, 'InvalidMetadata'); + hasError = true; + } + if (!hasError) { + assert.fail(); + } + } + }); + it("stageBlock @loki @sql", async () => { const body = "HelloWorld"; const result_stage = await blockBlobClient.stageBlock( diff --git a/tests/blob/apis/container.test.ts b/tests/blob/apis/container.test.ts index ca9aa039a..3a51cb75c 100644 --- a/tests/blob/apis/container.test.ts +++ b/tests/blob/apis/container.test.ts @@ -239,6 +239,32 @@ describe("ContainerAPIs", () => { done(); }); + it("create should fail when metadata names are invalid C# identifiers @loki @sql", async () => { + let invalidNames = [ + "1invalid", + "invalid.name", + "invalid-name", + ] + for (let i = 0; i < invalidNames.length; i++) { + const metadata = { + [invalidNames[i]]: "value" + }; + let hasError = false; + try { + const cURL = serviceClient.getContainerClient(getUniqueName(containerName)); + const access = "container"; + await cURL.create({ metadata, access }); + } catch (error) { + assert.deepStrictEqual(error.statusCode, 400); + assert.strictEqual(error.code, 'InvalidMetadata'); + hasError = true; + } + if (!hasError) { + assert.fail(); + } + } + }); + it("listBlobHierarchySegment with default parameters @loki @sql", async () => { const blobClients = []; for (let i = 0; i < 3; i++) { diff --git a/tests/blob/apis/pageblob.test.ts b/tests/blob/apis/pageblob.test.ts index ac6ed07d2..e66ec5756 100644 --- a/tests/blob/apis/pageblob.test.ts +++ b/tests/blob/apis/pageblob.test.ts @@ -145,6 +145,32 @@ describe("PageBlobAPIs", () => { ); }); + it("create should fail when metadata names are invalid C# identifiers @loki @sql", async () => { + let invalidNames = [ + "1invalid", + "invalid.name", + "invalid-name", + ] + for (let i = 0; i < invalidNames.length; i++) { + const metadata = { + [invalidNames[i]]: "value" + }; + let hasError = false; + try { + await pageBlobClient.create(512, { + metadata: metadata + }); + } catch (error) { + assert.deepStrictEqual(error.statusCode, 400); + assert.strictEqual(error.code, 'InvalidMetadata'); + hasError = true; + } + if (!hasError) { + assert.fail(); + } + } + }); + it("download page blob with partial ranges @loki", async () => { const length = 512 * 10; await pageBlobClient.create(length);