diff --git a/.chronus/changes/tcgc-fix-uri-template-2024-7-8-15-19-24.md b/.chronus/changes/tcgc-fix-uri-template-2024-7-8-15-19-24.md new file mode 100644 index 0000000000..7578436da7 --- /dev/null +++ b/.chronus/changes/tcgc-fix-uri-template-2024-7-8-15-19-24.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +Fix collectionFormat for "csv" \ No newline at end of file diff --git a/packages/typespec-client-generator-core/src/http.ts b/packages/typespec-client-generator-core/src/http.ts index 476118455e..81b3cb6d3a 100644 --- a/packages/typespec-client-generator-core/src/http.ts +++ b/packages/typespec-client-generator-core/src/http.ts @@ -596,11 +596,7 @@ function getCollectionFormat( ? getHeaderFieldOptions(program, type) : undefined )?.format; - if ( - tspCollectionFormat === "form" || - tspCollectionFormat === "simple" || - tspCollectionFormat === "csv" - ) { + if (tspCollectionFormat === "form" || tspCollectionFormat === "simple") { return undefined; } return tspCollectionFormat; diff --git a/packages/typespec-client-generator-core/test/package.test.ts b/packages/typespec-client-generator-core/test/package.test.ts index a42f827856..132e612b85 100644 --- a/packages/typespec-client-generator-core/test/package.test.ts +++ b/packages/typespec-client-generator-core/test/package.test.ts @@ -1251,6 +1251,24 @@ describe("typespec-client-generator-core: package", () => { strictEqual(queryParm.collectionFormat, "multi"); }); + it("query collection format for csv", async () => { + await runner.compile(`@server("http://localhost:3000", "endpoint") + @service({}) + namespace My.Service; + + #suppress "deprecated" "Legacy test" + op myOp(@query({format: "csv"}) query: string): void; + `); + const sdkPackage = runner.context.sdkPackage; + const method = getServiceMethodOfClient(sdkPackage); + strictEqual(method.kind, "basic"); + + strictEqual(method.operation.parameters.length, 1); + const queryParm = method.operation.parameters[0]; + strictEqual(queryParm.kind, "query"); + strictEqual(queryParm.collectionFormat, "csv"); + }); + it("body basic", async () => { await runner.compile(`@server("http://localhost:3000", "endpoint") @service({})