From 5d62feb58bd96a8380d2e709b2de81637a00d903 Mon Sep 17 00:00:00 2001 From: qiaozha Date: Wed, 11 Sep 2024 07:45:31 +0800 Subject: [PATCH 1/3] fix-model-properties-filter-metadata --- .../src/types.ts | 2 ++ .../test/types/model-types.test.ts | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/packages/typespec-client-generator-core/src/types.ts b/packages/typespec-client-generator-core/src/types.ts index 5d4c997561..0c0db00126 100644 --- a/packages/typespec-client-generator-core/src/types.ts +++ b/packages/typespec-client-generator-core/src/types.ts @@ -39,6 +39,7 @@ import { getHttpPart, getServers, isHeader, + isMetadata, isOrExtendsHttpFile, isStatusCode, } from "@typespec/http"; @@ -1428,6 +1429,7 @@ function addPropertiesToModelType( if ( isStatusCode(context.program, property) || isNeverOrVoidType(property.type) || + isMetadata(context.program, property) || sdkType.kind !== "model" ) { continue; diff --git a/packages/typespec-client-generator-core/test/types/model-types.test.ts b/packages/typespec-client-generator-core/test/types/model-types.test.ts index 71e30c7796..40cba3aeea 100644 --- a/packages/typespec-client-generator-core/test/types/model-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/model-types.test.ts @@ -1328,6 +1328,27 @@ describe("typespec-client-generator-core: model types", () => { strictEqual(catalog.properties.length, 2); strictEqual(deployment.properties.length, 2); }); + it("arm proxy resource template model", async () => { + await runner.compileWithBuiltInAzureResourceManagerService(` + @usage(Usage.input | Usage.output) + model Catalog is ProxyResource { + @pattern("^[A-Za-z0-9_-]{1,50}$") + @key("catalogName") + @segment("catalogs") + name: string; + } + + @usage(Usage.input | Usage.output) + model CatalogProperties { + test?: string; + } + `); + const models = runner.context.sdkPackage.models; + strictEqual(models.length, 4); + const catalog = models.find((x) => x.name === "Catalog"); + ok(catalog); + strictEqual(catalog.properties.length, 1); + }); it("model with deprecated annotation", async () => { await runner.compileAndDiagnose(` @service({}) From 4b87013a78d31216567c4f94f448b749c4a1105a Mon Sep 17 00:00:00 2001 From: qiaozha Date: Wed, 11 Sep 2024 07:51:09 +0800 Subject: [PATCH 2/3] assert properties name --- .../test/types/model-types.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/typespec-client-generator-core/test/types/model-types.test.ts b/packages/typespec-client-generator-core/test/types/model-types.test.ts index 40cba3aeea..c59e4ecffb 100644 --- a/packages/typespec-client-generator-core/test/types/model-types.test.ts +++ b/packages/typespec-client-generator-core/test/types/model-types.test.ts @@ -1348,6 +1348,7 @@ describe("typespec-client-generator-core: model types", () => { const catalog = models.find((x) => x.name === "Catalog"); ok(catalog); strictEqual(catalog.properties.length, 1); + strictEqual(catalog.properties[0].name, "properties"); }); it("model with deprecated annotation", async () => { await runner.compileAndDiagnose(` From a8cc75037f74fc221e3041c65cd56c0d1f4dd827 Mon Sep 17 00:00:00 2001 From: Qiaoqiao Zhang <55688292+qiaozha@users.noreply.github.com> Date: Wed, 11 Sep 2024 07:51:50 +0800 Subject: [PATCH 3/3] Create fix-model-properties-filter-2024-8-10-23-48-58.md --- .../fix-model-properties-filter-2024-8-10-23-48-58.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .chronus/changes/fix-model-properties-filter-2024-8-10-23-48-58.md diff --git a/.chronus/changes/fix-model-properties-filter-2024-8-10-23-48-58.md b/.chronus/changes/fix-model-properties-filter-2024-8-10-23-48-58.md new file mode 100644 index 0000000000..18f47a48c1 --- /dev/null +++ b/.chronus/changes/fix-model-properties-filter-2024-8-10-23-48-58.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +fix-model-properties-filter-metadata