@typespec/http-specs 0.1.0-alpha.9 → 0.1.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +260 -3
- package/README.md +11 -3
- package/dist/specs/authentication/noauth/union/mockapi.d.ts +3 -0
- package/dist/specs/authentication/noauth/union/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/noauth/union/mockapi.js +25 -0
- package/dist/specs/authentication/noauth/union/mockapi.js.map +1 -0
- package/dist/specs/documentation/mockapi.d.ts +3 -0
- package/dist/specs/documentation/mockapi.d.ts.map +1 -0
- package/dist/specs/documentation/mockapi.js +40 -0
- package/dist/specs/documentation/mockapi.js.map +1 -0
- package/dist/specs/encode/array/mockapi.d.ts +3 -0
- package/dist/specs/encode/array/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/array/mockapi.js +33 -0
- package/dist/specs/encode/array/mockapi.js.map +1 -0
- package/dist/specs/encode/bytes/mockapi.js +16 -24
- package/dist/specs/encode/bytes/mockapi.js.map +1 -1
- package/dist/specs/encode/datetime/mockapi.js +2 -2
- package/dist/specs/encode/datetime/mockapi.js.map +1 -1
- package/dist/specs/encode/duration/mockapi.d.ts.map +1 -1
- package/dist/specs/encode/duration/mockapi.js +115 -3
- package/dist/specs/encode/duration/mockapi.js.map +1 -1
- package/dist/specs/encode/numeric/mockapi.js +2 -2
- package/dist/specs/encode/numeric/mockapi.js.map +1 -1
- package/dist/specs/helper.d.ts +2 -2
- package/dist/specs/helper.d.ts.map +1 -1
- package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -1
- package/dist/specs/parameters/basic/mockapi.js +3 -3
- package/dist/specs/parameters/basic/mockapi.js.map +1 -1
- package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -1
- package/dist/specs/parameters/body-optionality/mockapi.js +14 -4
- package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -1
- package/dist/specs/parameters/collection-format/mockapi.js +4 -15
- package/dist/specs/parameters/collection-format/mockapi.js.map +1 -1
- package/dist/specs/parameters/path/mockapi.d.ts +3 -0
- package/dist/specs/parameters/path/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/path/mockapi.js +29 -0
- package/dist/specs/parameters/path/mockapi.js.map +1 -0
- package/dist/specs/parameters/query/mockapi.d.ts +3 -0
- package/dist/specs/parameters/query/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/query/mockapi.js +14 -0
- package/dist/specs/parameters/query/mockapi.js.map +1 -0
- package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -1
- package/dist/specs/parameters/spread/mockapi.js +19 -19
- package/dist/specs/parameters/spread/mockapi.js.map +1 -1
- package/dist/specs/payload/json-merge-patch/mockapi.js +4 -4
- package/dist/specs/payload/json-merge-patch/mockapi.js.map +1 -1
- package/dist/specs/payload/media-type/mockapi.js +2 -2
- package/dist/specs/payload/media-type/mockapi.js.map +1 -1
- package/dist/specs/payload/multipart/mockapi.d.ts.map +1 -1
- package/dist/specs/payload/multipart/mockapi.js +196 -60
- package/dist/specs/payload/multipart/mockapi.js.map +1 -1
- package/dist/specs/payload/pageable/mockapi.d.ts.map +1 -1
- package/dist/specs/payload/pageable/mockapi.js +626 -14
- package/dist/specs/payload/pageable/mockapi.js.map +1 -1
- package/dist/specs/payload/xml/mockapi.d.ts +19 -5
- package/dist/specs/payload/xml/mockapi.d.ts.map +1 -1
- package/dist/specs/payload/xml/mockapi.js +311 -55
- package/dist/specs/payload/xml/mockapi.js.map +1 -1
- package/dist/specs/response/status-code-range/mockapi.d.ts.map +1 -1
- package/dist/specs/response/status-code-range/mockapi.js +5 -9
- package/dist/specs/response/status-code-range/mockapi.js.map +1 -1
- package/dist/specs/routes/mockapi.js +16 -16
- package/dist/specs/routes/mockapi.js.map +1 -1
- package/dist/specs/serialization/encoded-name/json/mockapi.js +1 -1
- package/dist/specs/serialization/encoded-name/json/mockapi.js.map +1 -1
- package/dist/specs/server/versions/not-versioned/mockapi.js +1 -1
- package/dist/specs/server/versions/not-versioned/mockapi.js.map +1 -1
- package/dist/specs/server/versions/versioned/mockapi.js +8 -12
- package/dist/specs/server/versions/versioned/mockapi.js.map +1 -1
- package/dist/specs/special-words/mockapi.d.ts.map +1 -1
- package/dist/specs/special-words/mockapi.js +59 -6
- package/dist/specs/special-words/mockapi.js.map +1 -1
- package/dist/specs/streaming/jsonl/mockapi.d.ts +3 -0
- package/dist/specs/streaming/jsonl/mockapi.d.ts.map +1 -0
- package/dist/specs/streaming/jsonl/mockapi.js +30 -0
- package/dist/specs/streaming/jsonl/mockapi.js.map +1 -0
- package/dist/specs/type/array/mockapi.js +1 -1
- package/dist/specs/type/array/mockapi.js.map +1 -1
- package/dist/specs/type/dictionary/mockapi.js +1 -1
- package/dist/specs/type/dictionary/mockapi.js.map +1 -1
- package/dist/specs/type/enum/extensible/mockapi.js +1 -1
- package/dist/specs/type/enum/extensible/mockapi.js.map +1 -1
- package/dist/specs/type/enum/fixed/mockapi.js +2 -2
- package/dist/specs/type/enum/fixed/mockapi.js.map +1 -1
- package/dist/specs/type/file/mockapi.d.ts +3 -0
- package/dist/specs/type/file/mockapi.d.ts.map +1 -0
- package/dist/specs/type/file/mockapi.js +187 -0
- package/dist/specs/type/file/mockapi.js.map +1 -0
- package/dist/specs/type/model/empty/mockapi.js +2 -2
- package/dist/specs/type/model/empty/mockapi.js.map +1 -1
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js +1 -1
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js.map +1 -1
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js +2 -2
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js.map +1 -1
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js +2 -2
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js.map +1 -1
- package/dist/specs/type/model/inheritance/recursive/mockapi.js +1 -1
- package/dist/specs/type/model/inheritance/recursive/mockapi.js.map +1 -1
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js +2 -2
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js.map +1 -1
- package/dist/specs/type/model/usage/mockapi.js +4 -4
- package/dist/specs/type/model/usage/mockapi.js.map +1 -1
- package/dist/specs/type/model/visibility/mockapi.js +9 -10
- package/dist/specs/type/model/visibility/mockapi.js.map +1 -1
- package/dist/specs/type/property/additional-properties/mockapi.js +9 -6
- package/dist/specs/type/property/additional-properties/mockapi.js.map +1 -1
- package/dist/specs/type/property/nullable/mockapi.js +2 -6
- package/dist/specs/type/property/nullable/mockapi.js.map +1 -1
- package/dist/specs/type/property/optionality/mockapi.js +1 -1
- package/dist/specs/type/property/optionality/mockapi.js.map +1 -1
- package/dist/specs/type/property/value-types/mockapi.js +3 -3
- package/dist/specs/type/property/value-types/mockapi.js.map +1 -1
- package/dist/specs/type/scalar/mockapi.js +9 -9
- package/dist/specs/type/scalar/mockapi.js.map +1 -1
- package/dist/specs/type/union/discriminated/mockapi.d.ts +3 -0
- package/dist/specs/type/union/discriminated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/union/discriminated/mockapi.js +212 -0
- package/dist/specs/type/union/discriminated/mockapi.js.map +1 -0
- package/dist/specs/type/union/mockapi.js +2 -2
- package/dist/specs/type/union/mockapi.js.map +1 -1
- package/dist/specs/versioning/added/mockapi.js +6 -6
- package/dist/specs/versioning/added/mockapi.js.map +1 -1
- package/dist/specs/versioning/madeOptional/mockapi.js +2 -2
- package/dist/specs/versioning/madeOptional/mockapi.js.map +1 -1
- package/dist/specs/versioning/removed/mockapi.js +11 -11
- package/dist/specs/versioning/removed/mockapi.js.map +1 -1
- package/dist/specs/versioning/renamedFrom/mockapi.js +5 -5
- package/dist/specs/versioning/renamedFrom/mockapi.js.map +1 -1
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js +1 -1
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js.map +1 -1
- package/dist/specs/versioning/typeChangedFrom/mockapi.js +3 -3
- package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -1
- package/manifest.json +11545 -0
- package/package.json +31 -20
- package/smoke/petstore/main.tsp +96 -0
- package/smoke/todoapp/main.tsp +293 -0
- package/spec-summary.md +2137 -121
- package/specs/authentication/noauth/union/main.tsp +30 -0
- package/specs/authentication/noauth/union/mockapi.ts +27 -0
- package/specs/documentation/main.tsp +158 -0
- package/specs/documentation/mockapi.ts +59 -0
- package/specs/encode/array/main.tsp +339 -0
- package/specs/encode/array/mockapi.ts +83 -0
- package/specs/encode/bytes/main.tsp +29 -20
- package/specs/encode/bytes/mockapi.ts +13 -31
- package/specs/encode/datetime/main.tsp +2 -7
- package/specs/encode/datetime/mockapi.ts +2 -2
- package/specs/encode/duration/main.tsp +420 -7
- package/specs/encode/duration/mockapi.ts +221 -2
- package/specs/encode/numeric/mockapi.ts +2 -2
- package/specs/parameters/basic/mockapi.ts +3 -3
- package/specs/parameters/body-optionality/main.tsp +2 -0
- package/specs/parameters/body-optionality/mockapi.ts +24 -4
- package/specs/parameters/collection-format/main.tsp +5 -25
- package/specs/parameters/collection-format/mockapi.ts +4 -16
- package/specs/parameters/path/main.tsp +48 -0
- package/specs/parameters/path/mockapi.ts +34 -0
- package/specs/parameters/query/main.tsp +22 -0
- package/specs/parameters/query/mockapi.ts +15 -0
- package/specs/parameters/spread/mockapi.ts +19 -19
- package/specs/payload/json-merge-patch/main.tsp +2 -2
- package/specs/payload/json-merge-patch/mockapi.ts +4 -4
- package/specs/payload/media-type/mockapi.ts +2 -2
- package/specs/payload/multipart/main.tsp +230 -32
- package/specs/payload/multipart/mockapi.ts +207 -59
- package/specs/payload/pageable/main.tsp +648 -0
- package/specs/payload/pageable/mockapi.ts +691 -14
- package/specs/payload/xml/main.tsp +532 -132
- package/specs/payload/xml/mockapi.ts +402 -67
- package/specs/response/status-code-range/main.tsp +2 -2
- package/specs/response/status-code-range/mockapi.ts +5 -9
- package/specs/routes/main.tsp +29 -29
- package/specs/routes/mockapi.ts +16 -16
- package/specs/serialization/encoded-name/json/main.tsp +1 -1
- package/specs/serialization/encoded-name/json/mockapi.ts +1 -1
- package/specs/server/endpoint/not-defined/main.tsp +1 -3
- package/specs/server/path/multiple/main.tsp +3 -5
- package/specs/server/versions/not-versioned/mockapi.ts +1 -1
- package/specs/server/versions/versioned/main.tsp +1 -1
- package/specs/server/versions/versioned/mockapi.ts +6 -12
- package/specs/special-headers/conditional-request/main.tsp +1 -1
- package/specs/special-headers/repeatability/main.tsp +2 -2
- package/specs/special-words/main.tsp +124 -6
- package/specs/special-words/mockapi.ts +62 -6
- package/specs/streaming/jsonl/main.tsp +33 -0
- package/specs/streaming/jsonl/mockapi.ts +32 -0
- package/specs/type/array/mockapi.ts +1 -1
- package/specs/type/dictionary/mockapi.ts +1 -1
- package/specs/type/enum/extensible/main.tsp +18 -2
- package/specs/type/enum/extensible/mockapi.ts +1 -1
- package/specs/type/enum/fixed/main.tsp +15 -3
- package/specs/type/enum/fixed/mockapi.ts +2 -2
- package/specs/type/file/main.tsp +109 -0
- package/specs/type/file/mockapi.ts +200 -0
- package/specs/type/model/empty/mockapi.ts +2 -2
- package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +1 -1
- package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +2 -2
- package/specs/type/model/inheritance/not-discriminated/mockapi.ts +2 -2
- package/specs/type/model/inheritance/recursive/mockapi.ts +1 -1
- package/specs/type/model/inheritance/single-discriminator/mockapi.ts +2 -2
- package/specs/type/model/usage/mockapi.ts +4 -4
- package/specs/type/model/visibility/main.tsp +9 -17
- package/specs/type/model/visibility/mockapi.ts +9 -10
- package/specs/type/property/additional-properties/main.tsp +17 -17
- package/specs/type/property/additional-properties/mockapi.ts +10 -10
- package/specs/type/property/nullable/mockapi.ts +7 -8
- package/specs/type/property/optionality/mockapi.ts +1 -1
- package/specs/type/property/value-types/mockapi.ts +3 -3
- package/specs/type/scalar/main.tsp +58 -9
- package/specs/type/scalar/mockapi.ts +9 -9
- package/specs/type/union/discriminated/main.tsp +251 -0
- package/specs/type/union/discriminated/mockapi.ts +230 -0
- package/specs/type/union/mockapi.ts +2 -2
- package/specs/versioning/added/mockapi.ts +6 -6
- package/specs/versioning/madeOptional/mockapi.ts +2 -2
- package/specs/versioning/removed/main.tsp +5 -5
- package/specs/versioning/removed/mockapi.ts +11 -11
- package/specs/versioning/renamedFrom/mockapi.ts +5 -5
- package/specs/versioning/returnTypeChangedFrom/main.tsp +17 -2
- package/specs/versioning/returnTypeChangedFrom/mockapi.ts +1 -1
- package/specs/versioning/typeChangedFrom/mockapi.ts +3 -3
- package/temp/.tsbuildinfo +1 -1
- package/tsconfig.build.json +0 -4
- package/tspconfig.yaml +0 -2
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { MockRequest, passOnSuccess, ScenarioMockApi, xml } from "@typespec/spec-api";
|
|
1
|
+
import { MockRequest, passOnCode, passOnSuccess, ScenarioMockApi, xml } from "@typespec/spec-api";
|
|
2
2
|
|
|
3
3
|
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
4
|
|
|
5
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
6
|
+
// §1 — Primitive properties
|
|
7
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
8
|
+
|
|
5
9
|
export const simpleModel = `
|
|
6
10
|
<SimpleModel>
|
|
7
11
|
<name>foo</name>
|
|
@@ -9,6 +13,51 @@ export const simpleModel = `
|
|
|
9
13
|
</SimpleModel>
|
|
10
14
|
`;
|
|
11
15
|
|
|
16
|
+
export const modelWithRenamedProperty = `
|
|
17
|
+
<ModelWithRenamedProperty>
|
|
18
|
+
<renamedTitle>foo</renamedTitle>
|
|
19
|
+
<author>bar</author>
|
|
20
|
+
</ModelWithRenamedProperty>
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
export const modelWithRenamedFields = `
|
|
24
|
+
<ModelWithRenamedFieldsSrc>
|
|
25
|
+
<InputData>
|
|
26
|
+
<name>foo</name>
|
|
27
|
+
<age>123</age>
|
|
28
|
+
</InputData>
|
|
29
|
+
<OutputData>
|
|
30
|
+
<name>bar</name>
|
|
31
|
+
<age>456</age>
|
|
32
|
+
</OutputData>
|
|
33
|
+
</ModelWithRenamedFieldsSrc>
|
|
34
|
+
`;
|
|
35
|
+
|
|
36
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
37
|
+
// §2 — Nested models
|
|
38
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
39
|
+
|
|
40
|
+
export const modelWithNestedModel = `
|
|
41
|
+
<ModelWithNestedModel>
|
|
42
|
+
<nested>
|
|
43
|
+
<name>foo</name>
|
|
44
|
+
<age>123</age>
|
|
45
|
+
</nested>
|
|
46
|
+
</ModelWithNestedModel>
|
|
47
|
+
`;
|
|
48
|
+
|
|
49
|
+
export const modelWithRenamedNestedModel = `
|
|
50
|
+
<ModelWithRenamedNestedModel>
|
|
51
|
+
<author>
|
|
52
|
+
<name>foo</name>
|
|
53
|
+
</author>
|
|
54
|
+
</ModelWithRenamedNestedModel>
|
|
55
|
+
`;
|
|
56
|
+
|
|
57
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
58
|
+
// §3 — Array of primitive types
|
|
59
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
60
|
+
|
|
12
61
|
export const modelWithSimpleArrays = `
|
|
13
62
|
<ModelWithSimpleArrays>
|
|
14
63
|
<colors>
|
|
@@ -23,33 +72,6 @@ export const modelWithSimpleArrays = `
|
|
|
23
72
|
</ModelWithSimpleArrays>
|
|
24
73
|
`;
|
|
25
74
|
|
|
26
|
-
export const modelWithArrayOfModel = `
|
|
27
|
-
<ModelWithArrayOfModel>
|
|
28
|
-
<items>
|
|
29
|
-
<SimpleModel>
|
|
30
|
-
<name>foo</name>
|
|
31
|
-
<age>123</age>
|
|
32
|
-
</SimpleModel>
|
|
33
|
-
<SimpleModel>
|
|
34
|
-
<name>bar</name>
|
|
35
|
-
<age>456</age>
|
|
36
|
-
</SimpleModel>
|
|
37
|
-
</items>
|
|
38
|
-
</ModelWithArrayOfModel>
|
|
39
|
-
`;
|
|
40
|
-
|
|
41
|
-
export const modelWithOptionalField = `
|
|
42
|
-
<ModelWithOptionalField>
|
|
43
|
-
<item>widget</item>
|
|
44
|
-
</ModelWithOptionalField>
|
|
45
|
-
`;
|
|
46
|
-
|
|
47
|
-
export const modelWithAttributes = `
|
|
48
|
-
<ModelWithAttributes id1="123" id2="foo">
|
|
49
|
-
<enabled>true</enabled>
|
|
50
|
-
</ModelWithAttributes>
|
|
51
|
-
`;
|
|
52
|
-
|
|
53
75
|
export const modelWithUnwrappedArray = `
|
|
54
76
|
<ModelWithUnwrappedArray>
|
|
55
77
|
<colors>red</colors>
|
|
@@ -74,31 +96,150 @@ export const modelWithRenamedArrays = `
|
|
|
74
96
|
</ModelWithRenamedArrays>
|
|
75
97
|
`;
|
|
76
98
|
|
|
77
|
-
export const
|
|
78
|
-
<
|
|
79
|
-
<
|
|
99
|
+
export const modelWithWrappedPrimitiveCustomItemNames = `
|
|
100
|
+
<ModelWithWrappedPrimitiveCustomItemNames>
|
|
101
|
+
<ItemsTags>
|
|
102
|
+
<ItemName>fiction</ItemName>
|
|
103
|
+
<ItemName>classic</ItemName>
|
|
104
|
+
</ItemsTags>
|
|
105
|
+
</ModelWithWrappedPrimitiveCustomItemNames>
|
|
106
|
+
`;
|
|
107
|
+
|
|
108
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
109
|
+
// §4 — Array of complex types
|
|
110
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
111
|
+
|
|
112
|
+
export const modelWithArrayOfModel = `
|
|
113
|
+
<ModelWithArrayOfModel>
|
|
114
|
+
<items>
|
|
115
|
+
<SimpleModel>
|
|
116
|
+
<name>foo</name>
|
|
117
|
+
<age>123</age>
|
|
118
|
+
</SimpleModel>
|
|
119
|
+
<SimpleModel>
|
|
120
|
+
<name>bar</name>
|
|
121
|
+
<age>456</age>
|
|
122
|
+
</SimpleModel>
|
|
123
|
+
</items>
|
|
124
|
+
</ModelWithArrayOfModel>
|
|
125
|
+
`;
|
|
126
|
+
|
|
127
|
+
export const modelWithUnwrappedModelArray = `
|
|
128
|
+
<ModelWithUnwrappedModelArray>
|
|
129
|
+
<items>
|
|
80
130
|
<name>foo</name>
|
|
81
131
|
<age>123</age>
|
|
82
|
-
</
|
|
83
|
-
<
|
|
132
|
+
</items>
|
|
133
|
+
<items>
|
|
84
134
|
<name>bar</name>
|
|
85
135
|
<age>456</age>
|
|
86
|
-
</
|
|
87
|
-
</
|
|
136
|
+
</items>
|
|
137
|
+
</ModelWithUnwrappedModelArray>
|
|
88
138
|
`;
|
|
89
139
|
|
|
90
|
-
export const
|
|
91
|
-
<
|
|
92
|
-
<
|
|
93
|
-
|
|
140
|
+
export const modelWithRenamedWrappedModelArray = `
|
|
141
|
+
<ModelWithRenamedWrappedModelArray>
|
|
142
|
+
<AllItems>
|
|
143
|
+
<SimpleModel>
|
|
144
|
+
<name>foo</name>
|
|
145
|
+
<age>123</age>
|
|
146
|
+
</SimpleModel>
|
|
147
|
+
<SimpleModel>
|
|
148
|
+
<name>bar</name>
|
|
149
|
+
<age>456</age>
|
|
150
|
+
</SimpleModel>
|
|
151
|
+
</AllItems>
|
|
152
|
+
</ModelWithRenamedWrappedModelArray>
|
|
94
153
|
`;
|
|
95
154
|
|
|
155
|
+
export const modelWithRenamedUnwrappedModelArray = `
|
|
156
|
+
<ModelWithRenamedUnwrappedModelArray>
|
|
157
|
+
<ModelItem>
|
|
158
|
+
<name>foo</name>
|
|
159
|
+
<age>123</age>
|
|
160
|
+
</ModelItem>
|
|
161
|
+
<ModelItem>
|
|
162
|
+
<name>bar</name>
|
|
163
|
+
<age>456</age>
|
|
164
|
+
</ModelItem>
|
|
165
|
+
</ModelWithRenamedUnwrappedModelArray>
|
|
166
|
+
`;
|
|
167
|
+
|
|
168
|
+
export const modelWithRenamedWrappedAndItemModelArray = `
|
|
169
|
+
<ModelWithRenamedWrappedAndItemModelArray>
|
|
170
|
+
<AllBooks>
|
|
171
|
+
<XmlBook>
|
|
172
|
+
<title>The Great Gatsby</title>
|
|
173
|
+
</XmlBook>
|
|
174
|
+
<XmlBook>
|
|
175
|
+
<title>Les Miserables</title>
|
|
176
|
+
</XmlBook>
|
|
177
|
+
</AllBooks>
|
|
178
|
+
</ModelWithRenamedWrappedAndItemModelArray>
|
|
179
|
+
`;
|
|
180
|
+
|
|
181
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
182
|
+
// §5 — Attributes
|
|
183
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
184
|
+
|
|
185
|
+
export const modelWithAttributes = `
|
|
186
|
+
<ModelWithAttributes id1="123" id2="foo">
|
|
187
|
+
<enabled>true</enabled>
|
|
188
|
+
</ModelWithAttributes>
|
|
189
|
+
`;
|
|
190
|
+
|
|
191
|
+
export const modelWithRenamedAttribute = `
|
|
192
|
+
<ModelWithRenamedAttribute xml-id="123">
|
|
193
|
+
<title>The Great Gatsby</title>
|
|
194
|
+
<author>F. Scott Fitzgerald</author>
|
|
195
|
+
</ModelWithRenamedAttribute>
|
|
196
|
+
`;
|
|
197
|
+
|
|
198
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
199
|
+
// §6/§7 — Namespace and prefix
|
|
200
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
201
|
+
|
|
202
|
+
export const modelWithNamespace = `
|
|
203
|
+
<smp:ModelWithNamespace xmlns:smp="http://example.com/schema">
|
|
204
|
+
<id>123</id>
|
|
205
|
+
<title>The Great Gatsby</title>
|
|
206
|
+
</smp:ModelWithNamespace>
|
|
207
|
+
`;
|
|
208
|
+
|
|
209
|
+
export const modelWithNamespaceOnProperties = `
|
|
210
|
+
<smp:ModelWithNamespaceOnProperties xmlns:smp="http://example.com/schema" xmlns:ns2="http://example.com/ns2">
|
|
211
|
+
<id>123</id>
|
|
212
|
+
<smp:title>The Great Gatsby</smp:title>
|
|
213
|
+
<ns2:author>F. Scott Fitzgerald</ns2:author>
|
|
214
|
+
</smp:ModelWithNamespaceOnProperties>
|
|
215
|
+
`;
|
|
216
|
+
|
|
217
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
218
|
+
// §8 — Text content
|
|
219
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
220
|
+
|
|
96
221
|
export const modelWithText = `
|
|
97
222
|
<ModelWithText language="foo">
|
|
98
223
|
This is some text.
|
|
99
224
|
</ModelWithText>
|
|
100
225
|
`;
|
|
101
226
|
|
|
227
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
228
|
+
// Additional scenarios (not in the guide)
|
|
229
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
230
|
+
|
|
231
|
+
export const modelWithOptionalField = `
|
|
232
|
+
<ModelWithOptionalField>
|
|
233
|
+
<item>widget</item>
|
|
234
|
+
</ModelWithOptionalField>
|
|
235
|
+
`;
|
|
236
|
+
|
|
237
|
+
export const modelWithEmptyArray = `
|
|
238
|
+
<ModelWithEmptyArray>
|
|
239
|
+
<items />
|
|
240
|
+
</ModelWithEmptyArray>
|
|
241
|
+
`;
|
|
242
|
+
|
|
102
243
|
export const modelWithDictionary = `
|
|
103
244
|
<ModelWithDictionary>
|
|
104
245
|
<metadata>
|
|
@@ -123,6 +264,40 @@ export const modelWithEncodedNames = `
|
|
|
123
264
|
</ModelWithEncodedNamesSrc>
|
|
124
265
|
`;
|
|
125
266
|
|
|
267
|
+
export const modelWithEnum = `
|
|
268
|
+
<ModelWithEnum>
|
|
269
|
+
<status>success</status>
|
|
270
|
+
</ModelWithEnum>
|
|
271
|
+
`;
|
|
272
|
+
|
|
273
|
+
export const modelWithDatetime = `
|
|
274
|
+
<ModelWithDatetime>
|
|
275
|
+
<rfc3339>2022-08-26T18:38:00.000Z</rfc3339>
|
|
276
|
+
<rfc7231>Fri, 26 Aug 2022 14:38:00 GMT</rfc7231>
|
|
277
|
+
</ModelWithDatetime>
|
|
278
|
+
`;
|
|
279
|
+
|
|
280
|
+
// Some clients serialize UTC datetimes without trailing zero milliseconds. Both
|
|
281
|
+
// "2022-08-26T18:38:00.000Z" and "2022-08-26T18:38:00Z" are valid RFC3339 representations
|
|
282
|
+
// of the same instant; accept either form.
|
|
283
|
+
const modelWithDatetimeNoMs = `
|
|
284
|
+
<ModelWithDatetime>
|
|
285
|
+
<rfc3339>2022-08-26T18:38:00Z</rfc3339>
|
|
286
|
+
<rfc7231>Fri, 26 Aug 2022 14:38:00 GMT</rfc7231>
|
|
287
|
+
</ModelWithDatetime>
|
|
288
|
+
`;
|
|
289
|
+
|
|
290
|
+
export const xmlError = `
|
|
291
|
+
<XmlErrorBody>
|
|
292
|
+
<message>Something went wrong</message>
|
|
293
|
+
<code>400</code>
|
|
294
|
+
</XmlErrorBody>
|
|
295
|
+
`;
|
|
296
|
+
|
|
297
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
298
|
+
// Scenario registrations
|
|
299
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
300
|
+
|
|
126
301
|
function createServerTests(uri: string, data?: any) {
|
|
127
302
|
return {
|
|
128
303
|
get: passOnSuccess({
|
|
@@ -139,10 +314,7 @@ function createServerTests(uri: string, data?: any) {
|
|
|
139
314
|
uri,
|
|
140
315
|
method: "put",
|
|
141
316
|
request: {
|
|
142
|
-
body: data,
|
|
143
|
-
headers: {
|
|
144
|
-
"content-type": "application/xml",
|
|
145
|
-
},
|
|
317
|
+
body: xml(data),
|
|
146
318
|
},
|
|
147
319
|
handler: (req: MockRequest) => {
|
|
148
320
|
req.expect.containsHeader("content-type", "application/xml");
|
|
@@ -159,10 +331,46 @@ function createServerTests(uri: string, data?: any) {
|
|
|
159
331
|
};
|
|
160
332
|
}
|
|
161
333
|
|
|
334
|
+
// §1 — Primitive properties
|
|
335
|
+
|
|
162
336
|
const Payload_Xml_SimpleModel = createServerTests("/payload/xml/simpleModel", simpleModel);
|
|
163
337
|
Scenarios.Payload_Xml_SimpleModelValue_get = Payload_Xml_SimpleModel.get;
|
|
164
338
|
Scenarios.Payload_Xml_SimpleModelValue_put = Payload_Xml_SimpleModel.put;
|
|
165
339
|
|
|
340
|
+
const Payload_Xml_ModelWithRenamedProperty = createServerTests(
|
|
341
|
+
"/payload/xml/modelWithRenamedProperty",
|
|
342
|
+
modelWithRenamedProperty,
|
|
343
|
+
);
|
|
344
|
+
Scenarios.Payload_Xml_ModelWithRenamedPropertyValue_get = Payload_Xml_ModelWithRenamedProperty.get;
|
|
345
|
+
Scenarios.Payload_Xml_ModelWithRenamedPropertyValue_put = Payload_Xml_ModelWithRenamedProperty.put;
|
|
346
|
+
|
|
347
|
+
const Payload_Xml_ModelWithRenamedFields = createServerTests(
|
|
348
|
+
"/payload/xml/modelWithRenamedFields",
|
|
349
|
+
modelWithRenamedFields,
|
|
350
|
+
);
|
|
351
|
+
Scenarios.Payload_Xml_ModelWithRenamedFieldsValue_get = Payload_Xml_ModelWithRenamedFields.get;
|
|
352
|
+
Scenarios.Payload_Xml_ModelWithRenamedFieldsValue_put = Payload_Xml_ModelWithRenamedFields.put;
|
|
353
|
+
|
|
354
|
+
// §2 — Nested models
|
|
355
|
+
|
|
356
|
+
const Payload_Xml_ModelWithNestedModel = createServerTests(
|
|
357
|
+
"/payload/xml/modelWithNestedModel",
|
|
358
|
+
modelWithNestedModel,
|
|
359
|
+
);
|
|
360
|
+
Scenarios.Payload_Xml_ModelWithNestedModelValue_get = Payload_Xml_ModelWithNestedModel.get;
|
|
361
|
+
Scenarios.Payload_Xml_ModelWithNestedModelValue_put = Payload_Xml_ModelWithNestedModel.put;
|
|
362
|
+
|
|
363
|
+
const Payload_Xml_ModelWithRenamedNestedModel = createServerTests(
|
|
364
|
+
"/payload/xml/modelWithRenamedNestedModel",
|
|
365
|
+
modelWithRenamedNestedModel,
|
|
366
|
+
);
|
|
367
|
+
Scenarios.Payload_Xml_ModelWithRenamedNestedModelValue_get =
|
|
368
|
+
Payload_Xml_ModelWithRenamedNestedModel.get;
|
|
369
|
+
Scenarios.Payload_Xml_ModelWithRenamedNestedModelValue_put =
|
|
370
|
+
Payload_Xml_ModelWithRenamedNestedModel.put;
|
|
371
|
+
|
|
372
|
+
// §3 — Array of primitive types
|
|
373
|
+
|
|
166
374
|
const Payload_Xml_ModelWithSimpleArrays = createServerTests(
|
|
167
375
|
"/payload/xml/modelWithSimpleArrays",
|
|
168
376
|
modelWithSimpleArrays,
|
|
@@ -170,6 +378,31 @@ const Payload_Xml_ModelWithSimpleArrays = createServerTests(
|
|
|
170
378
|
Scenarios.Payload_Xml_ModelWithSimpleArraysValue_get = Payload_Xml_ModelWithSimpleArrays.get;
|
|
171
379
|
Scenarios.Payload_Xml_ModelWithSimpleArraysValue_put = Payload_Xml_ModelWithSimpleArrays.put;
|
|
172
380
|
|
|
381
|
+
const Payload_Xml_ModelWithUnwrappedArray = createServerTests(
|
|
382
|
+
"/payload/xml/modelWithUnwrappedArray",
|
|
383
|
+
modelWithUnwrappedArray,
|
|
384
|
+
);
|
|
385
|
+
Scenarios.Payload_Xml_ModelWithUnwrappedArrayValue_get = Payload_Xml_ModelWithUnwrappedArray.get;
|
|
386
|
+
Scenarios.Payload_Xml_ModelWithUnwrappedArrayValue_put = Payload_Xml_ModelWithUnwrappedArray.put;
|
|
387
|
+
|
|
388
|
+
const Payload_Xml_ModelWithRenamedArrays = createServerTests(
|
|
389
|
+
"/payload/xml/modelWithRenamedArrays",
|
|
390
|
+
modelWithRenamedArrays,
|
|
391
|
+
);
|
|
392
|
+
Scenarios.Payload_Xml_ModelWithRenamedArraysValue_get = Payload_Xml_ModelWithRenamedArrays.get;
|
|
393
|
+
Scenarios.Payload_Xml_ModelWithRenamedArraysValue_put = Payload_Xml_ModelWithRenamedArrays.put;
|
|
394
|
+
|
|
395
|
+
const Payload_Xml_ModelWithWrappedPrimitiveCustomItemNames = createServerTests(
|
|
396
|
+
"/payload/xml/modelWithWrappedPrimitiveCustomItemNames",
|
|
397
|
+
modelWithWrappedPrimitiveCustomItemNames,
|
|
398
|
+
);
|
|
399
|
+
Scenarios.Payload_Xml_ModelWithWrappedPrimitiveCustomItemNamesValue_get =
|
|
400
|
+
Payload_Xml_ModelWithWrappedPrimitiveCustomItemNames.get;
|
|
401
|
+
Scenarios.Payload_Xml_ModelWithWrappedPrimitiveCustomItemNamesValue_put =
|
|
402
|
+
Payload_Xml_ModelWithWrappedPrimitiveCustomItemNames.put;
|
|
403
|
+
|
|
404
|
+
// §4 — Array of complex types
|
|
405
|
+
|
|
173
406
|
const Payload_Xml_ModelWithArrayOfModel = createServerTests(
|
|
174
407
|
"/payload/xml/modelWithArrayOfModel",
|
|
175
408
|
modelWithArrayOfModel,
|
|
@@ -177,12 +410,43 @@ const Payload_Xml_ModelWithArrayOfModel = createServerTests(
|
|
|
177
410
|
Scenarios.Payload_Xml_ModelWithArrayOfModelValue_get = Payload_Xml_ModelWithArrayOfModel.get;
|
|
178
411
|
Scenarios.Payload_Xml_ModelWithArrayOfModelValue_put = Payload_Xml_ModelWithArrayOfModel.put;
|
|
179
412
|
|
|
180
|
-
const
|
|
181
|
-
"/payload/xml/
|
|
182
|
-
|
|
413
|
+
const Payload_Xml_ModelWithUnwrappedModelArray = createServerTests(
|
|
414
|
+
"/payload/xml/modelWithUnwrappedModelArray",
|
|
415
|
+
modelWithUnwrappedModelArray,
|
|
183
416
|
);
|
|
184
|
-
Scenarios.
|
|
185
|
-
|
|
417
|
+
Scenarios.Payload_Xml_ModelWithUnwrappedModelArrayValue_get =
|
|
418
|
+
Payload_Xml_ModelWithUnwrappedModelArray.get;
|
|
419
|
+
Scenarios.Payload_Xml_ModelWithUnwrappedModelArrayValue_put =
|
|
420
|
+
Payload_Xml_ModelWithUnwrappedModelArray.put;
|
|
421
|
+
|
|
422
|
+
const Payload_Xml_ModelWithRenamedWrappedModelArray = createServerTests(
|
|
423
|
+
"/payload/xml/modelWithRenamedWrappedModelArray",
|
|
424
|
+
modelWithRenamedWrappedModelArray,
|
|
425
|
+
);
|
|
426
|
+
Scenarios.Payload_Xml_ModelWithRenamedWrappedModelArrayValue_get =
|
|
427
|
+
Payload_Xml_ModelWithRenamedWrappedModelArray.get;
|
|
428
|
+
Scenarios.Payload_Xml_ModelWithRenamedWrappedModelArrayValue_put =
|
|
429
|
+
Payload_Xml_ModelWithRenamedWrappedModelArray.put;
|
|
430
|
+
|
|
431
|
+
const Payload_Xml_ModelWithRenamedUnwrappedModelArray = createServerTests(
|
|
432
|
+
"/payload/xml/modelWithRenamedUnwrappedModelArray",
|
|
433
|
+
modelWithRenamedUnwrappedModelArray,
|
|
434
|
+
);
|
|
435
|
+
Scenarios.Payload_Xml_ModelWithRenamedUnwrappedModelArrayValue_get =
|
|
436
|
+
Payload_Xml_ModelWithRenamedUnwrappedModelArray.get;
|
|
437
|
+
Scenarios.Payload_Xml_ModelWithRenamedUnwrappedModelArrayValue_put =
|
|
438
|
+
Payload_Xml_ModelWithRenamedUnwrappedModelArray.put;
|
|
439
|
+
|
|
440
|
+
const Payload_Xml_ModelWithRenamedWrappedAndItemModelArray = createServerTests(
|
|
441
|
+
"/payload/xml/modelWithRenamedWrappedAndItemModelArray",
|
|
442
|
+
modelWithRenamedWrappedAndItemModelArray,
|
|
443
|
+
);
|
|
444
|
+
Scenarios.Payload_Xml_ModelWithRenamedWrappedAndItemModelArrayValue_get =
|
|
445
|
+
Payload_Xml_ModelWithRenamedWrappedAndItemModelArray.get;
|
|
446
|
+
Scenarios.Payload_Xml_ModelWithRenamedWrappedAndItemModelArrayValue_put =
|
|
447
|
+
Payload_Xml_ModelWithRenamedWrappedAndItemModelArray.put;
|
|
448
|
+
|
|
449
|
+
// §5 — Attributes
|
|
186
450
|
|
|
187
451
|
const Payload_Xml_ModelWithAttributes = createServerTests(
|
|
188
452
|
"/payload/xml/modelWithAttributes",
|
|
@@ -191,26 +455,47 @@ const Payload_Xml_ModelWithAttributes = createServerTests(
|
|
|
191
455
|
Scenarios.Payload_Xml_ModelWithAttributesValue_get = Payload_Xml_ModelWithAttributes.get;
|
|
192
456
|
Scenarios.Payload_Xml_ModelWithAttributesValue_put = Payload_Xml_ModelWithAttributes.put;
|
|
193
457
|
|
|
194
|
-
const
|
|
195
|
-
"/payload/xml/
|
|
196
|
-
|
|
458
|
+
const Payload_Xml_ModelWithRenamedAttribute = createServerTests(
|
|
459
|
+
"/payload/xml/modelWithRenamedAttribute",
|
|
460
|
+
modelWithRenamedAttribute,
|
|
197
461
|
);
|
|
198
|
-
Scenarios.
|
|
199
|
-
|
|
462
|
+
Scenarios.Payload_Xml_ModelWithRenamedAttributeValue_get =
|
|
463
|
+
Payload_Xml_ModelWithRenamedAttribute.get;
|
|
464
|
+
Scenarios.Payload_Xml_ModelWithRenamedAttributeValue_put =
|
|
465
|
+
Payload_Xml_ModelWithRenamedAttribute.put;
|
|
200
466
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
467
|
+
// §6/§7 — Namespace and prefix
|
|
468
|
+
|
|
469
|
+
const Payload_Xml_ModelWithNamespace = createServerTests(
|
|
470
|
+
"/payload/xml/modelWithNamespace",
|
|
471
|
+
modelWithNamespace,
|
|
204
472
|
);
|
|
205
|
-
Scenarios.
|
|
206
|
-
Scenarios.
|
|
473
|
+
Scenarios.Payload_Xml_ModelWithNamespaceValue_get = Payload_Xml_ModelWithNamespace.get;
|
|
474
|
+
Scenarios.Payload_Xml_ModelWithNamespaceValue_put = Payload_Xml_ModelWithNamespace.put;
|
|
207
475
|
|
|
208
|
-
const
|
|
209
|
-
"/payload/xml/
|
|
210
|
-
|
|
476
|
+
const Payload_Xml_ModelWithNamespaceOnProperties = createServerTests(
|
|
477
|
+
"/payload/xml/modelWithNamespaceOnProperties",
|
|
478
|
+
modelWithNamespaceOnProperties,
|
|
211
479
|
);
|
|
212
|
-
Scenarios.
|
|
213
|
-
|
|
480
|
+
Scenarios.Payload_Xml_ModelWithNamespaceOnPropertiesValue_get =
|
|
481
|
+
Payload_Xml_ModelWithNamespaceOnProperties.get;
|
|
482
|
+
Scenarios.Payload_Xml_ModelWithNamespaceOnPropertiesValue_put =
|
|
483
|
+
Payload_Xml_ModelWithNamespaceOnProperties.put;
|
|
484
|
+
|
|
485
|
+
// §8 — Text content
|
|
486
|
+
|
|
487
|
+
const Payload_Xml_ModelWithText = createServerTests("/payload/xml/modelWithText", modelWithText);
|
|
488
|
+
Scenarios.Payload_Xml_ModelWithTextValue_get = Payload_Xml_ModelWithText.get;
|
|
489
|
+
Scenarios.Payload_Xml_ModelWithTextValue_put = Payload_Xml_ModelWithText.put;
|
|
490
|
+
|
|
491
|
+
// Additional scenarios
|
|
492
|
+
|
|
493
|
+
const Payload_Xml_ModelWithOptionalField = createServerTests(
|
|
494
|
+
"/payload/xml/modelWithOptionalField",
|
|
495
|
+
modelWithOptionalField,
|
|
496
|
+
);
|
|
497
|
+
Scenarios.Payload_Xml_ModelWithOptionalFieldValue_get = Payload_Xml_ModelWithOptionalField.get;
|
|
498
|
+
Scenarios.Payload_Xml_ModelWithOptionalFieldValue_put = Payload_Xml_ModelWithOptionalField.put;
|
|
214
499
|
|
|
215
500
|
const Payload_Xml_ModelWithEmptyArray = createServerTests(
|
|
216
501
|
"/payload/xml/modelWithEmptyArray",
|
|
@@ -219,10 +504,6 @@ const Payload_Xml_ModelWithEmptyArray = createServerTests(
|
|
|
219
504
|
Scenarios.Payload_Xml_ModelWithEmptyArrayValue_get = Payload_Xml_ModelWithEmptyArray.get;
|
|
220
505
|
Scenarios.Payload_Xml_ModelWithEmptyArrayValue_put = Payload_Xml_ModelWithEmptyArray.put;
|
|
221
506
|
|
|
222
|
-
const Payload_Xml_ModelWithText = createServerTests("/payload/xml/modelWithText", modelWithText);
|
|
223
|
-
Scenarios.Payload_Xml_ModelWithTextValue_get = Payload_Xml_ModelWithText.get;
|
|
224
|
-
Scenarios.Payload_Xml_ModelWithTextValue_put = Payload_Xml_ModelWithText.put;
|
|
225
|
-
|
|
226
507
|
const Payload_Xml_ModelWithDictionary = createServerTests(
|
|
227
508
|
"/payload/xml/modelWithDictionary",
|
|
228
509
|
modelWithDictionary,
|
|
@@ -236,3 +517,57 @@ const Payload_Xml_ModelWithEncodedNames = createServerTests(
|
|
|
236
517
|
);
|
|
237
518
|
Scenarios.Payload_Xml_ModelWithEncodedNamesValue_get = Payload_Xml_ModelWithEncodedNames.get;
|
|
238
519
|
Scenarios.Payload_Xml_ModelWithEncodedNamesValue_put = Payload_Xml_ModelWithEncodedNames.put;
|
|
520
|
+
|
|
521
|
+
const Payload_Xml_ModelWithEnum = createServerTests("/payload/xml/modelWithEnum", modelWithEnum);
|
|
522
|
+
Scenarios.Payload_Xml_ModelWithEnumValue_get = Payload_Xml_ModelWithEnum.get;
|
|
523
|
+
Scenarios.Payload_Xml_ModelWithEnumValue_put = Payload_Xml_ModelWithEnum.put;
|
|
524
|
+
|
|
525
|
+
Scenarios.Payload_Xml_ModelWithDatetimeValue_get = passOnSuccess({
|
|
526
|
+
uri: "/payload/xml/modelWithDatetime",
|
|
527
|
+
method: "get",
|
|
528
|
+
request: {},
|
|
529
|
+
response: {
|
|
530
|
+
status: 200,
|
|
531
|
+
body: xml(modelWithDatetime),
|
|
532
|
+
},
|
|
533
|
+
kind: "MockApiDefinition",
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
Scenarios.Payload_Xml_ModelWithDatetimeValue_put = passOnSuccess({
|
|
537
|
+
uri: "/payload/xml/modelWithDatetime",
|
|
538
|
+
method: "put",
|
|
539
|
+
request: {
|
|
540
|
+
body: xml(modelWithDatetime),
|
|
541
|
+
},
|
|
542
|
+
handler: (req: MockRequest) => {
|
|
543
|
+
req.expect.containsHeader("content-type", "application/xml");
|
|
544
|
+
// Accept both "2022-08-26T18:38:00.000Z" and "2022-08-26T18:38:00Z" as equivalent UTC datetimes.
|
|
545
|
+
let firstError: unknown;
|
|
546
|
+
try {
|
|
547
|
+
req.expect.xmlBodyEquals(modelWithDatetime);
|
|
548
|
+
} catch (e) {
|
|
549
|
+
firstError = e;
|
|
550
|
+
}
|
|
551
|
+
if (firstError !== undefined) {
|
|
552
|
+
req.expect.xmlBodyEquals(modelWithDatetimeNoMs);
|
|
553
|
+
}
|
|
554
|
+
return {
|
|
555
|
+
status: 204,
|
|
556
|
+
};
|
|
557
|
+
},
|
|
558
|
+
response: {
|
|
559
|
+
status: 204,
|
|
560
|
+
},
|
|
561
|
+
kind: "MockApiDefinition",
|
|
562
|
+
});
|
|
563
|
+
|
|
564
|
+
Scenarios.Payload_Xml_XmlErrorValue_get = passOnCode(400, {
|
|
565
|
+
uri: "/payload/xml/error",
|
|
566
|
+
method: "get",
|
|
567
|
+
request: {},
|
|
568
|
+
response: {
|
|
569
|
+
status: 400,
|
|
570
|
+
body: xml(xmlError),
|
|
571
|
+
},
|
|
572
|
+
kind: "MockApiDefinition",
|
|
573
|
+
});
|
|
@@ -26,7 +26,7 @@ namespace Response.StatusCodeRange;
|
|
|
26
26
|
""")
|
|
27
27
|
@route("/error-response-status-code-in-range")
|
|
28
28
|
@get
|
|
29
|
-
op errorResponseStatusCodeInRange():
|
|
29
|
+
op errorResponseStatusCodeInRange(): NoContentResponse | ErrorInRange | DefaultError;
|
|
30
30
|
|
|
31
31
|
@scenario
|
|
32
32
|
@scenarioDoc("""
|
|
@@ -44,7 +44,7 @@ op errorResponseStatusCodeInRange(): 204 | ErrorInRange | DefaultError;
|
|
|
44
44
|
""")
|
|
45
45
|
@route("/error-response-status-code-404")
|
|
46
46
|
@get
|
|
47
|
-
op errorResponseStatusCode404():
|
|
47
|
+
op errorResponseStatusCode404(): NoContentResponse | NotFoundError | Standard4XXError;
|
|
48
48
|
|
|
49
49
|
@error
|
|
50
50
|
model NotFoundError {
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { json,
|
|
1
|
+
import { json, passOnCode, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
2
|
|
|
3
3
|
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
4
|
|
|
5
|
-
Scenarios.Response_StatusCodeRange_errorResponseStatusCodeInRange =
|
|
5
|
+
Scenarios.Response_StatusCodeRange_errorResponseStatusCodeInRange = passOnCode(494, {
|
|
6
6
|
uri: "/response/status-code-range/error-response-status-code-in-range",
|
|
7
7
|
method: "get",
|
|
8
|
-
request: {
|
|
9
|
-
status: 494,
|
|
10
|
-
},
|
|
8
|
+
request: {},
|
|
11
9
|
response: {
|
|
12
10
|
status: 494,
|
|
13
11
|
body: json({
|
|
@@ -18,12 +16,10 @@ Scenarios.Response_StatusCodeRange_errorResponseStatusCodeInRange = passOnSucces
|
|
|
18
16
|
kind: "MockApiDefinition",
|
|
19
17
|
});
|
|
20
18
|
|
|
21
|
-
Scenarios.Response_StatusCodeRange_errorResponseStatusCode404 =
|
|
19
|
+
Scenarios.Response_StatusCodeRange_errorResponseStatusCode404 = passOnCode(404, {
|
|
22
20
|
uri: "/response/status-code-range/error-response-status-code-404",
|
|
23
21
|
method: "get",
|
|
24
|
-
request: {
|
|
25
|
-
status: 404,
|
|
26
|
-
},
|
|
22
|
+
request: {},
|
|
27
23
|
response: {
|
|
28
24
|
status: 404,
|
|
29
25
|
body: json({
|