diff --git a/.chronus/changes/http-specs_remove-discriminated-union-2025-2-13-10-42-35.md b/.chronus/changes/http-specs_remove-discriminated-union-2025-2-13-10-42-35.md new file mode 100644 index 00000000000..5180c568166 --- /dev/null +++ b/.chronus/changes/http-specs_remove-discriminated-union-2025-2-13-10-42-35.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-specs" +--- + +Remove SpreadRecordForDiscriminatedUnion case \ No newline at end of file diff --git a/packages/http-client-js/test/e2e/http/type/property/additional-properties/spreads.test.ts b/packages/http-client-js/test/e2e/http/type/property/additional-properties/spreads.test.ts index 72ac24a2059..a7c742a6c76 100644 --- a/packages/http-client-js/test/e2e/http/type/property/additional-properties/spreads.test.ts +++ b/packages/http-client-js/test/e2e/http/type/property/additional-properties/spreads.test.ts @@ -20,8 +20,6 @@ import { SpreadFloatClient, SpreadModelArrayClient, SpreadModelClient, - SpreadRecordDiscriminatedUnionClient, - SpreadRecordForDiscriminatedUnion, SpreadRecordForNonDiscriminatedUnion, SpreadRecordForNonDiscriminatedUnion2, SpreadRecordForNonDiscriminatedUnion3, @@ -377,31 +375,6 @@ describe("Missing AdditionalProperties Endpoints", () => { }); }); - /** - * Deprecated @discriminator in unions - */ - describe.skip("SpreadRecordDiscriminatedUnion", () => { - const client = new SpreadRecordDiscriminatedUnionClient(clientOptions); - const expected: SpreadRecordForDiscriminatedUnion = { - name: "abc", - additionalProperties: { - prop1: { kind: "kind0", fooProp: "abc" }, - prop2: { - kind: "kind1", - start: new Date("2021-01-01T00:00:00Z"), - end: new Date("2021-01-02T00:00:00Z"), - }, - }, - }; - it("GET returns the expected response", async () => { - const response = await client.get(); - expect(response).toEqual(expected); - }); - it("PUT accepts the expected input", async () => { - await client.put(expected); - }); - }); - describe("SpreadRecordNonDiscriminatedUnion", () => { const client = new SpreadRecordNonDiscriminatedUnionClient(clientOptions); const expected: SpreadRecordForNonDiscriminatedUnion = { diff --git a/packages/http-specs/spec-summary.md b/packages/http-specs/spec-summary.md index 9a6a4fd23cf..16afccf10a3 100644 --- a/packages/http-specs/spec-summary.md +++ b/packages/http-specs/spec-summary.md @@ -5336,42 +5336,6 @@ Expected input body: } ``` -### Type_Property_AdditionalProperties_SpreadRecordDiscriminatedUnion_get - -- Endpoint: `get /type/property/additionalProperties/spreadRecordDiscriminatedUnion` - -Expected response body: - -```json -{ - "name": "abc", - "prop1": { "kind": "kind0", "fooProp": "abc" }, - "prop2": { - "kind": "kind1", - "start": "2021-01-01T00:00:00Z", - "end": "2021-01-02T00:00:00Z" - } -} -``` - -### Type_Property_AdditionalProperties_SpreadRecordDiscriminatedUnion_put - -- Endpoint: `put /type/property/additionalProperties/spreadRecordDiscriminatedUnion` - -Expected input body: - -```json -{ - "name": "abc", - "prop1": { "kind": "kind0", "fooProp": "abc" }, - "prop2": { - "kind": "kind1", - "start": "2021-01-01T00:00:00Z", - "end": "2021-01-02T00:00:00Z" - } -} -``` - ### Type_Property_AdditionalProperties_SpreadRecordNonDiscriminatedUnion_get - Endpoint: `get /type/property/additionalProperties/spreadRecordNonDiscriminatedUnion` diff --git a/packages/http-specs/specs/type/property/additional-properties/main.tsp b/packages/http-specs/specs/type/property/additional-properties/main.tsp index a9132e3042c..b304f1db348 100644 --- a/packages/http-specs/specs/type/property/additional-properties/main.tsp +++ b/packages/http-specs/specs/type/property/additional-properties/main.tsp @@ -463,17 +463,19 @@ interface SpreadRecordUnion > {} // ****************** spread record of discriminated unions ************************** -@discriminated(#{ envelope: "none" }) -union WidgetData { - kind0: WidgetData0, - kind1: WidgetData1, -} +// @discriminated(#{ envelope: "none" }) +// union WidgetData { +// kind0: WidgetData0, +// kind1: WidgetData1, +// } model WidgetData0 { + kind: "kind0"; fooProp: string; } model WidgetData1 { + kind: "kind1"; start: utcDateTime; end?: utcDateTime; } @@ -483,20 +485,20 @@ model WidgetData2 { start: string; } -@doc("The model spread Record") -model SpreadRecordForDiscriminatedUnion { - @doc("The name property") - name: string; +// @doc("The model spread Record") +// model SpreadRecordForDiscriminatedUnion { +// @doc("The name property") +// name: string; - ...Record; -} +// ...Record; +// } -@route("/spreadRecordDiscriminatedUnion") -interface SpreadRecordDiscriminatedUnion - extends ModelOperations< - SpreadRecordForDiscriminatedUnion, - "{'name': 'abc', 'prop1': {'kind': 'kind0', 'fooProp': 'abc'}, 'prop2': {'kind': 'kind1', 'start': '2021-01-01T00:00:00Z', 'end': '2021-01-02T00:00:00Z'}}" - > {} +// @route("/spreadRecordDiscriminatedUnion") +// interface SpreadRecordDiscriminatedUnion +// extends ModelOperations< +// SpreadRecordForDiscriminatedUnion, +// "{'name': 'abc', 'prop1': {'kind': 'kind0', 'fooProp': 'abc'}, 'prop2': {'kind': 'kind1', 'start': '2021-01-01T00:00:00Z', 'end': '2021-01-02T00:00:00Z'}}" +// > {} // ****************** spread record of non-discriminated unions but could guess a discriminator ************************** @doc("The model spread Record") diff --git a/packages/http-specs/specs/type/property/additional-properties/mockapi.ts b/packages/http-specs/specs/type/property/additional-properties/mockapi.ts index 8ecc675cc67..cf971448633 100644 --- a/packages/http-specs/specs/type/property/additional-properties/mockapi.ts +++ b/packages/http-specs/specs/type/property/additional-properties/mockapi.ts @@ -432,14 +432,14 @@ Scenarios.Type_Property_AdditionalProperties_SpreadRecordUnion_get = Scenarios.Type_Property_AdditionalProperties_SpreadRecordUnion_put = Type_Property_Additional_Properties_Spread_Record_Union.put; -const Type_Property_Additional_Properties_Spread_Record_Discriminated_Union = createServerTests( - `/type/property/additionalProperties/spreadRecordDiscriminatedUnion`, - recordDiscriminatedUnionBody, -); -Scenarios.Type_Property_AdditionalProperties_SpreadRecordDiscriminatedUnion_get = - Type_Property_Additional_Properties_Spread_Record_Discriminated_Union.get; -Scenarios.Type_Property_AdditionalProperties_SpreadRecordDiscriminatedUnion_put = - Type_Property_Additional_Properties_Spread_Record_Discriminated_Union.put; +// const Type_Property_Additional_Properties_Spread_Record_Discriminated_Union = createServerTests( +// `/type/property/additionalProperties/spreadRecordDiscriminatedUnion`, +// recordDiscriminatedUnionBody, +// ); +// Scenarios.Type_Property_AdditionalProperties_SpreadRecordDiscriminatedUnion_get = +// Type_Property_Additional_Properties_Spread_Record_Discriminated_Union.get; +// Scenarios.Type_Property_AdditionalProperties_SpreadRecordDiscriminatedUnion_put = +// Type_Property_Additional_Properties_Spread_Record_Discriminated_Union.put; const Type_Property_Additional_Properties_Spread_Record_Non_Discriminated_Union = createServerTests( `/type/property/additionalProperties/spreadRecordNonDiscriminatedUnion`,