Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
changeKind: fix
packages:
- "@typespec/http-specs"
---

Remove SpreadRecordForDiscriminatedUnion case
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ import {
SpreadFloatClient,
SpreadModelArrayClient,
SpreadModelClient,
SpreadRecordDiscriminatedUnionClient,
SpreadRecordForDiscriminatedUnion,
SpreadRecordForNonDiscriminatedUnion,
SpreadRecordForNonDiscriminatedUnion2,
SpreadRecordForNonDiscriminatedUnion3,
Expand Down Expand Up @@ -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 = {
Expand Down
36 changes: 0 additions & 36 deletions packages/http-specs/spec-summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -483,20 +485,20 @@ model WidgetData2 {
start: string;
}

@doc("The model spread Record<WidgetData>")
model SpreadRecordForDiscriminatedUnion {
@doc("The name property")
name: string;
// @doc("The model spread Record<WidgetData>")
// model SpreadRecordForDiscriminatedUnion {
// @doc("The name property")
// name: string;

...Record<WidgetData>;
}
// ...Record<WidgetData>;
// }

@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<WidgetData0 | WidgetData1>")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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`,
Expand Down
Loading