@typespec/http-specs 0.37.2
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 +1 -0
- package/LICENSE +21 -0
- package/README.md +36 -0
- package/assets/image.jpg +0 -0
- package/assets/image.png +0 -0
- package/dist/specs/authentication/api-key/mockapi.d.ts +3 -0
- package/dist/specs/authentication/api-key/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/api-key/mockapi.js +45 -0
- package/dist/specs/authentication/api-key/mockapi.js.map +1 -0
- package/dist/specs/authentication/commonapi.d.ts +9 -0
- package/dist/specs/authentication/commonapi.d.ts.map +1 -0
- package/dist/specs/authentication/commonapi.js +19 -0
- package/dist/specs/authentication/commonapi.js.map +1 -0
- package/dist/specs/authentication/http/custom/mockapi.d.ts +3 -0
- package/dist/specs/authentication/http/custom/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/http/custom/mockapi.js +45 -0
- package/dist/specs/authentication/http/custom/mockapi.js.map +1 -0
- package/dist/specs/authentication/oauth2/mockapi.d.ts +3 -0
- package/dist/specs/authentication/oauth2/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/oauth2/mockapi.js +42 -0
- package/dist/specs/authentication/oauth2/mockapi.js.map +1 -0
- package/dist/specs/authentication/union/mockapi.d.ts +3 -0
- package/dist/specs/authentication/union/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/union/mockapi.js +37 -0
- package/dist/specs/authentication/union/mockapi.js.map +1 -0
- package/dist/specs/encode/bytes/mockapi.d.ts +3 -0
- package/dist/specs/encode/bytes/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/bytes/mockapi.js +179 -0
- package/dist/specs/encode/bytes/mockapi.js.map +1 -0
- package/dist/specs/encode/datetime/mockapi.d.ts +3 -0
- package/dist/specs/encode/datetime/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/datetime/mockapi.js +160 -0
- package/dist/specs/encode/datetime/mockapi.js.map +1 -0
- package/dist/specs/encode/duration/mockapi.d.ts +3 -0
- package/dist/specs/encode/duration/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/duration/mockapi.js +116 -0
- package/dist/specs/encode/duration/mockapi.js.map +1 -0
- package/dist/specs/encode/numeric/mockapi.d.ts +3 -0
- package/dist/specs/encode/numeric/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/numeric/mockapi.js +29 -0
- package/dist/specs/encode/numeric/mockapi.js.map +1 -0
- package/dist/specs/helper.d.ts +3 -0
- package/dist/specs/helper.d.ts.map +1 -0
- package/dist/specs/helper.js +7 -0
- package/dist/specs/helper.js.map +1 -0
- package/dist/specs/parameters/basic/mockapi.d.ts +3 -0
- package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/basic/mockapi.js +24 -0
- package/dist/specs/parameters/basic/mockapi.js.map +1 -0
- package/dist/specs/parameters/body-optionality/mockapi.d.ts +3 -0
- package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/body-optionality/mockapi.js +62 -0
- package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -0
- package/dist/specs/parameters/collection-format/mockapi.d.ts +3 -0
- package/dist/specs/parameters/collection-format/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/collection-format/mockapi.js +106 -0
- package/dist/specs/parameters/collection-format/mockapi.js.map +1 -0
- package/dist/specs/parameters/spread/mockapi.d.ts +3 -0
- package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/spread/mockapi.js +206 -0
- package/dist/specs/parameters/spread/mockapi.js.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts +40 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js +141 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js.map +1 -0
- package/dist/specs/payload/media-type/mockapi.d.ts +3 -0
- package/dist/specs/payload/media-type/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/media-type/mockapi.js +84 -0
- package/dist/specs/payload/media-type/mockapi.js.map +1 -0
- package/dist/specs/payload/multipart/mockapi.d.ts +3 -0
- package/dist/specs/payload/multipart/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/multipart/mockapi.js +153 -0
- package/dist/specs/payload/multipart/mockapi.js.map +1 -0
- package/dist/specs/payload/xml/mockapi.d.ts +15 -0
- package/dist/specs/payload/xml/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/xml/mockapi.js +189 -0
- package/dist/specs/payload/xml/mockapi.js.map +1 -0
- package/dist/specs/routes/mockapi.d.ts +3 -0
- package/dist/specs/routes/mockapi.d.ts.map +1 -0
- package/dist/specs/routes/mockapi.js +63 -0
- package/dist/specs/routes/mockapi.js.map +1 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.d.ts +3 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.d.ts.map +1 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.js +32 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.js.map +1 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.d.ts +3 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.d.ts.map +1 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.js +15 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.js.map +1 -0
- package/dist/specs/server/path/multiple/mockapi.d.ts +3 -0
- package/dist/specs/server/path/multiple/mockapi.d.ts.map +1 -0
- package/dist/specs/server/path/multiple/mockapi.js +27 -0
- package/dist/specs/server/path/multiple/mockapi.js.map +1 -0
- package/dist/specs/server/path/single/mockapi.d.ts +3 -0
- package/dist/specs/server/path/single/mockapi.d.ts.map +1 -0
- package/dist/specs/server/path/single/mockapi.js +15 -0
- package/dist/specs/server/path/single/mockapi.js.map +1 -0
- package/dist/specs/server/versions/not-versioned/mockapi.d.ts +3 -0
- package/dist/specs/server/versions/not-versioned/mockapi.d.ts.map +1 -0
- package/dist/specs/server/versions/not-versioned/mockapi.js +46 -0
- package/dist/specs/server/versions/not-versioned/mockapi.js.map +1 -0
- package/dist/specs/server/versions/versioned/mockapi.d.ts +3 -0
- package/dist/specs/server/versions/versioned/mockapi.d.ts.map +1 -0
- package/dist/specs/server/versions/versioned/mockapi.js +47 -0
- package/dist/specs/server/versions/versioned/mockapi.js.map +1 -0
- package/dist/specs/special-headers/conditional-request/mockapi.d.ts +3 -0
- package/dist/specs/special-headers/conditional-request/mockapi.d.ts.map +1 -0
- package/dist/specs/special-headers/conditional-request/mockapi.js +79 -0
- package/dist/specs/special-headers/conditional-request/mockapi.js.map +1 -0
- package/dist/specs/special-headers/repeatability/mockapi.d.ts +3 -0
- package/dist/specs/special-headers/repeatability/mockapi.d.ts.map +1 -0
- package/dist/specs/special-headers/repeatability/mockapi.js +36 -0
- package/dist/specs/special-headers/repeatability/mockapi.js.map +1 -0
- package/dist/specs/special-words/dec.d.ts +22 -0
- package/dist/specs/special-words/dec.d.ts.map +1 -0
- package/dist/specs/special-words/dec.js +37 -0
- package/dist/specs/special-words/dec.js.map +1 -0
- package/dist/specs/special-words/mockapi.d.ts +3 -0
- package/dist/specs/special-words/mockapi.d.ts.map +1 -0
- package/dist/specs/special-words/mockapi.js +246 -0
- package/dist/specs/special-words/mockapi.js.map +1 -0
- package/dist/specs/type/array/mockapi.d.ts +3 -0
- package/dist/specs/type/array/mockapi.d.ts.map +1 -0
- package/dist/specs/type/array/mockapi.js +104 -0
- package/dist/specs/type/array/mockapi.js.map +1 -0
- package/dist/specs/type/dictionary/mockapi.d.ts +3 -0
- package/dist/specs/type/dictionary/mockapi.d.ts.map +1 -0
- package/dist/specs/type/dictionary/mockapi.js +103 -0
- package/dist/specs/type/dictionary/mockapi.js.map +1 -0
- package/dist/specs/type/enum/extensible/mockapi.d.ts +3 -0
- package/dist/specs/type/enum/extensible/mockapi.d.ts.map +1 -0
- package/dist/specs/type/enum/extensible/mockapi.js +46 -0
- package/dist/specs/type/enum/extensible/mockapi.js.map +1 -0
- package/dist/specs/type/enum/fixed/mockapi.d.ts +3 -0
- package/dist/specs/type/enum/fixed/mockapi.d.ts.map +1 -0
- package/dist/specs/type/enum/fixed/mockapi.js +53 -0
- package/dist/specs/type/enum/fixed/mockapi.js.map +1 -0
- package/dist/specs/type/model/empty/mockapi.d.ts +3 -0
- package/dist/specs/type/model/empty/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/empty/mockapi.js +48 -0
- package/dist/specs/type/model/empty/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js +79 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js +147 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js +47 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.js +47 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js +122 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/templated/mockapi.d.ts +3 -0
- package/dist/specs/type/model/templated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/templated/mockapi.js +99 -0
- package/dist/specs/type/model/templated/mockapi.js.map +1 -0
- package/dist/specs/type/model/usage/mockapi.d.ts +3 -0
- package/dist/specs/type/model/usage/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/usage/mockapi.js +52 -0
- package/dist/specs/type/model/usage/mockapi.js.map +1 -0
- package/dist/specs/type/model/visibility/mockapi.d.ts +3 -0
- package/dist/specs/type/model/visibility/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/visibility/mockapi.js +138 -0
- package/dist/specs/type/model/visibility/mockapi.js.map +1 -0
- package/dist/specs/type/property/additional-properties/mockapi.d.ts +3 -0
- package/dist/specs/type/property/additional-properties/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/additional-properties/mockapi.js +346 -0
- package/dist/specs/type/property/additional-properties/mockapi.js.map +1 -0
- package/dist/specs/type/property/nullable/mockapi.d.ts +3 -0
- package/dist/specs/type/property/nullable/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/nullable/mockapi.js +147 -0
- package/dist/specs/type/property/nullable/mockapi.js.map +1 -0
- package/dist/specs/type/property/optionality/mockapi.d.ts +3 -0
- package/dist/specs/type/property/optionality/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/optionality/mockapi.js +197 -0
- package/dist/specs/type/property/optionality/mockapi.js.map +1 -0
- package/dist/specs/type/property/value-types/mockapi.d.ts +3 -0
- package/dist/specs/type/property/value-types/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/value-types/mockapi.js +213 -0
- package/dist/specs/type/property/value-types/mockapi.js.map +1 -0
- package/dist/specs/type/scalar/mockapi.d.ts +3 -0
- package/dist/specs/type/scalar/mockapi.d.ts.map +1 -0
- package/dist/specs/type/scalar/mockapi.js +274 -0
- package/dist/specs/type/scalar/mockapi.js.map +1 -0
- package/dist/specs/type/union/mockapi.d.ts +3 -0
- package/dist/specs/type/union/mockapi.d.ts.map +1 -0
- package/dist/specs/type/union/mockapi.js +113 -0
- package/dist/specs/type/union/mockapi.js.map +1 -0
- package/dist/specs/versioning/added/mockapi.d.ts +3 -0
- package/dist/specs/versioning/added/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/added/mockapi.js +76 -0
- package/dist/specs/versioning/added/mockapi.js.map +1 -0
- package/dist/specs/versioning/madeOptional/mockapi.d.ts +3 -0
- package/dist/specs/versioning/madeOptional/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/madeOptional/mockapi.js +24 -0
- package/dist/specs/versioning/madeOptional/mockapi.js.map +1 -0
- package/dist/specs/versioning/removed/mockapi.d.ts +3 -0
- package/dist/specs/versioning/removed/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/removed/mockapi.js +26 -0
- package/dist/specs/versioning/removed/mockapi.js.map +1 -0
- package/dist/specs/versioning/renamedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/renamedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/renamedFrom/mockapi.js +53 -0
- package/dist/specs/versioning/renamedFrom/mockapi.js.map +1 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js +25 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js.map +1 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js +29 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
- package/package.json +53 -0
- package/specs/README.md +3 -0
- package/specs/authentication/api-key/main.tsp +39 -0
- package/specs/authentication/api-key/mockapi.ts +47 -0
- package/specs/authentication/commonapi.ts +43 -0
- package/specs/authentication/http/custom/main.tsp +39 -0
- package/specs/authentication/http/custom/mockapi.ts +47 -0
- package/specs/authentication/oauth2/main.tsp +44 -0
- package/specs/authentication/oauth2/mockapi.ts +44 -0
- package/specs/authentication/union/main.tsp +29 -0
- package/specs/authentication/union/mockapi.ts +39 -0
- package/specs/encode/bytes/main.tsp +369 -0
- package/specs/encode/bytes/mockapi.ts +309 -0
- package/specs/encode/datetime/main.tsp +344 -0
- package/specs/encode/datetime/mockapi.ts +274 -0
- package/specs/encode/duration/main.tsp +322 -0
- package/specs/encode/duration/mockapi.ts +204 -0
- package/specs/encode/numeric/main.tsp +71 -0
- package/specs/encode/numeric/mockapi.ts +39 -0
- package/specs/helper.ts +8 -0
- package/specs/parameters/basic/main.tsp +61 -0
- package/specs/parameters/basic/mockapi.ts +29 -0
- package/specs/parameters/body-optionality/main.tsp +63 -0
- package/specs/parameters/body-optionality/mockapi.ts +71 -0
- package/specs/parameters/collection-format/main.tsp +95 -0
- package/specs/parameters/collection-format/mockapi.ts +113 -0
- package/specs/parameters/spread/main.tsp +340 -0
- package/specs/parameters/spread/mockapi.ts +216 -0
- package/specs/payload/json-merge-patch/main.tsp +183 -0
- package/specs/payload/json-merge-patch/mockapi.ts +146 -0
- package/specs/payload/media-type/main.tsp +54 -0
- package/specs/payload/media-type/mockapi.ts +88 -0
- package/specs/payload/multipart/main.tsp +499 -0
- package/specs/payload/multipart/mockapi.ts +226 -0
- package/specs/payload/xml/main.tsp +312 -0
- package/specs/payload/xml/mockapi.ts +244 -0
- package/specs/routes/main.tsp +476 -0
- package/specs/routes/mockapi.ts +158 -0
- package/specs/scratch/.gitignore +3 -0
- package/specs/serialization/encoded-name/json/main.tsp +45 -0
- package/specs/serialization/encoded-name/json/mockapi.ts +34 -0
- package/specs/server/endpoint/not-defined/main.tsp +19 -0
- package/specs/server/endpoint/not-defined/mockapi.ts +16 -0
- package/specs/server/path/multiple/main.tsp +46 -0
- package/specs/server/path/multiple/mockapi.ts +29 -0
- package/specs/server/path/single/main.tsp +23 -0
- package/specs/server/path/single/mockapi.ts +16 -0
- package/specs/server/versions/not-versioned/main.tsp +39 -0
- package/specs/server/versions/not-versioned/mockapi.ts +55 -0
- package/specs/server/versions/versioned/main.tsp +65 -0
- package/specs/server/versions/versioned/mockapi.ts +68 -0
- package/specs/special-headers/conditional-request/main.tsp +89 -0
- package/specs/special-headers/conditional-request/mockapi.ts +83 -0
- package/specs/special-headers/repeatability/main.tsp +39 -0
- package/specs/special-headers/repeatability/mockapi.ts +47 -0
- package/specs/special-words/dec.js +52 -0
- package/specs/special-words/main.tsp +238 -0
- package/specs/special-words/mockapi.ts +407 -0
- package/specs/type/array/main.tsp +132 -0
- package/specs/type/array/mockapi.ts +119 -0
- package/specs/type/dictionary/main.tsp +122 -0
- package/specs/type/dictionary/mockapi.ts +115 -0
- package/specs/type/enum/extensible/main.tsp +64 -0
- package/specs/type/enum/extensible/mockapi.ts +55 -0
- package/specs/type/enum/fixed/main.tsp +60 -0
- package/specs/type/enum/fixed/mockapi.ts +55 -0
- package/specs/type/model/empty/main.tsp +39 -0
- package/specs/type/model/empty/mockapi.ts +51 -0
- package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
- package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +99 -0
- package/specs/type/model/inheritance/nested-discriminator/main.tsp +223 -0
- package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +150 -0
- package/specs/type/model/inheritance/not-discriminated/main.tsp +53 -0
- package/specs/type/model/inheritance/not-discriminated/mockapi.ts +49 -0
- package/specs/type/model/inheritance/recursive/main.tsp +70 -0
- package/specs/type/model/inheritance/recursive/mockapi.ts +48 -0
- package/specs/type/model/inheritance/single-discriminator/main.tsp +171 -0
- package/specs/type/model/inheritance/single-discriminator/mockapi.ts +126 -0
- package/specs/type/model/templated/main.tsp +130 -0
- package/specs/type/model/templated/mockapi.ts +102 -0
- package/specs/type/model/usage/main.tsp +48 -0
- package/specs/type/model/usage/mockapi.ts +56 -0
- package/specs/type/model/visibility/main.tsp +152 -0
- package/specs/type/model/visibility/mockapi.ts +139 -0
- package/specs/type/property/additional-properties/main.tsp +591 -0
- package/specs/type/property/additional-properties/mockapi.ts +477 -0
- package/specs/type/property/nullable/client.tsp +21 -0
- package/specs/type/property/nullable/main.tsp +162 -0
- package/specs/type/property/nullable/mockapi.ts +202 -0
- package/specs/type/property/optionality/main.tsp +258 -0
- package/specs/type/property/optionality/mockapi.ts +308 -0
- package/specs/type/property/value-types/main.tsp +285 -0
- package/specs/type/property/value-types/mockapi.ts +297 -0
- package/specs/type/scalar/main.tsp +164 -0
- package/specs/type/scalar/mockapi.ts +280 -0
- package/specs/type/union/main.tsp +262 -0
- package/specs/type/union/mockapi.ts +137 -0
- package/specs/versioning/added/main.tsp +135 -0
- package/specs/versioning/added/mockapi.ts +79 -0
- package/specs/versioning/madeOptional/main.tsp +64 -0
- package/specs/versioning/madeOptional/mockapi.ts +25 -0
- package/specs/versioning/removed/main.tsp +125 -0
- package/specs/versioning/removed/mockapi.ts +27 -0
- package/specs/versioning/renamedFrom/main.tsp +111 -0
- package/specs/versioning/renamedFrom/mockapi.ts +55 -0
- package/specs/versioning/returnTypeChangedFrom/main.tsp +56 -0
- package/specs/versioning/returnTypeChangedFrom/mockapi.ts +26 -0
- package/specs/versioning/typeChangedFrom/main.tsp +70 -0
- package/specs/versioning/typeChangedFrom/mockapi.ts +30 -0
- package/temp/.tsbuildinfo +1 -0
- package/tsconfig.build.json +9 -0
- package/tsconfig.json +11 -0
- package/tspconfig.yaml +2 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
function createServerTests(uri: string) {
|
|
5
|
+
return passOnSuccess({
|
|
6
|
+
uri,
|
|
7
|
+
method: "put",
|
|
8
|
+
request: {
|
|
9
|
+
body: {
|
|
10
|
+
name: "foo",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
handler: (req: MockRequest) => {
|
|
17
|
+
req.expect.bodyEquals({ name: "foo" });
|
|
18
|
+
return { status: 204 };
|
|
19
|
+
},
|
|
20
|
+
kind: "MockApiDefinition",
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
Scenarios.Parameters_Basic_ExplicitBody_simple = createServerTests(
|
|
25
|
+
"/parameters/basic/explicit-body/simple",
|
|
26
|
+
);
|
|
27
|
+
Scenarios.Parameters_Basic_ImplicitBody_simple = createServerTests(
|
|
28
|
+
"/parameters/basic/implicit-body/simple",
|
|
29
|
+
);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
using Azure.ClientGenerator.Core;
|
|
6
|
+
|
|
7
|
+
@doc("Test describing optionality of the request body.")
|
|
8
|
+
@supportedBy("dpg")
|
|
9
|
+
@scenarioService("/parameters/body-optionality")
|
|
10
|
+
namespace Parameters.BodyOptionality;
|
|
11
|
+
|
|
12
|
+
model BodyModel {
|
|
13
|
+
name: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@scenario
|
|
17
|
+
@scenarioDoc("""
|
|
18
|
+
Scenario defining how an explicit required body parameter is specified.
|
|
19
|
+
|
|
20
|
+
Expected request body:
|
|
21
|
+
```json
|
|
22
|
+
{ "name": "foo" }
|
|
23
|
+
```
|
|
24
|
+
""")
|
|
25
|
+
@route("/required-explicit")
|
|
26
|
+
@post
|
|
27
|
+
op requiredExplicit(@body body: BodyModel): NoContentResponse;
|
|
28
|
+
|
|
29
|
+
@scenario
|
|
30
|
+
@scenarioDoc("""
|
|
31
|
+
Scenario defining how an explicit optional body parameter is specified.
|
|
32
|
+
|
|
33
|
+
Expected request body for `set`
|
|
34
|
+
```json
|
|
35
|
+
{ "name": "foo" }
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Expected no request body for `omit`
|
|
39
|
+
""")
|
|
40
|
+
@operationGroup
|
|
41
|
+
@route("/optional-explicit")
|
|
42
|
+
namespace OptionalExplicit {
|
|
43
|
+
@route("/set")
|
|
44
|
+
@post
|
|
45
|
+
op set(@body body?: BodyModel): NoContentResponse;
|
|
46
|
+
|
|
47
|
+
@route("/omit")
|
|
48
|
+
@post
|
|
49
|
+
op omit(@body body?: BodyModel): NoContentResponse;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@scenario
|
|
53
|
+
@scenarioDoc("""
|
|
54
|
+
Scenario defining how an implicit required body parameter is specified.
|
|
55
|
+
|
|
56
|
+
Expected request body:
|
|
57
|
+
```json
|
|
58
|
+
{ "name": "foo" }
|
|
59
|
+
```
|
|
60
|
+
""")
|
|
61
|
+
@route("/required-implicit")
|
|
62
|
+
@post
|
|
63
|
+
op requiredImplicit(...BodyModel): NoContentResponse;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
function createServerTests(uri: string, data: any) {
|
|
5
|
+
return passOnSuccess({
|
|
6
|
+
uri,
|
|
7
|
+
method: "post",
|
|
8
|
+
request: {
|
|
9
|
+
body: data,
|
|
10
|
+
},
|
|
11
|
+
response: {
|
|
12
|
+
status: 204,
|
|
13
|
+
},
|
|
14
|
+
handler: (req: MockRequest) => {
|
|
15
|
+
req.expect.bodyEquals({ name: "foo" });
|
|
16
|
+
return { status: 204 };
|
|
17
|
+
},
|
|
18
|
+
kind: "MockApiDefinition",
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
Scenarios.Parameters_BodyOptionality_requiredExplicit = createServerTests(
|
|
23
|
+
"/parameters/body-optionality/required-explicit",
|
|
24
|
+
{
|
|
25
|
+
name: "foo",
|
|
26
|
+
},
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
Scenarios.Parameters_BodyOptionality_OptionalExplicit = passOnSuccess([
|
|
30
|
+
{
|
|
31
|
+
uri: "/parameters/body-optionality/optional-explicit/set",
|
|
32
|
+
method: "post",
|
|
33
|
+
request: {
|
|
34
|
+
body: {
|
|
35
|
+
name: "foo",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
response: {
|
|
39
|
+
status: 204,
|
|
40
|
+
},
|
|
41
|
+
handler: (req: MockRequest) => {
|
|
42
|
+
req.expect.bodyEquals({ name: "foo" });
|
|
43
|
+
return { status: 204 };
|
|
44
|
+
},
|
|
45
|
+
kind: "MockApiDefinition",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
uri: "/parameters/body-optionality/optional-explicit/omit",
|
|
49
|
+
method: "post",
|
|
50
|
+
request: {
|
|
51
|
+
body: {
|
|
52
|
+
name: "foo",
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
response: {
|
|
56
|
+
status: 204,
|
|
57
|
+
},
|
|
58
|
+
handler: (req: MockRequest) => {
|
|
59
|
+
req.expect.bodyEquals({ name: "foo" });
|
|
60
|
+
return { status: 204 };
|
|
61
|
+
},
|
|
62
|
+
kind: "MockApiDefinition",
|
|
63
|
+
},
|
|
64
|
+
]);
|
|
65
|
+
|
|
66
|
+
Scenarios.Parameters_BodyOptionality_requiredImplicit = createServerTests(
|
|
67
|
+
"/parameters/body-optionality/required-implicit",
|
|
68
|
+
{
|
|
69
|
+
name: "foo",
|
|
70
|
+
},
|
|
71
|
+
);
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
using Azure.ClientGenerator.Core;
|
|
6
|
+
|
|
7
|
+
@doc("Test for collectionFormat.")
|
|
8
|
+
@supportedBy("dpg")
|
|
9
|
+
@scenarioService("/parameters/collection-format")
|
|
10
|
+
namespace Parameters.CollectionFormat;
|
|
11
|
+
|
|
12
|
+
@route("/query")
|
|
13
|
+
@operationGroup
|
|
14
|
+
namespace Query {
|
|
15
|
+
@scenario
|
|
16
|
+
@scenarioDoc("""
|
|
17
|
+
This test is testing sending a multi collection format array query parameters
|
|
18
|
+
""")
|
|
19
|
+
@route("/multi")
|
|
20
|
+
op multi(
|
|
21
|
+
@doc("Possible values for colors are [blue,red,green]")
|
|
22
|
+
@query(#{ explode: true })
|
|
23
|
+
colors: string[],
|
|
24
|
+
): NoContentResponse;
|
|
25
|
+
|
|
26
|
+
@scenario
|
|
27
|
+
@scenarioDoc("""
|
|
28
|
+
This test is testing sending a ssv collection format array query parameters
|
|
29
|
+
""")
|
|
30
|
+
@route("/ssv")
|
|
31
|
+
op ssv(
|
|
32
|
+
#suppress "deprecated" "Deprecated in next release"
|
|
33
|
+
@doc("Possible values for colors are [blue,red,green]")
|
|
34
|
+
@query({
|
|
35
|
+
format: "ssv",
|
|
36
|
+
})
|
|
37
|
+
colors: string[],
|
|
38
|
+
): NoContentResponse;
|
|
39
|
+
|
|
40
|
+
@scenario
|
|
41
|
+
@scenarioDoc("""
|
|
42
|
+
This test is testing sending a tsv collection format array query parameters
|
|
43
|
+
""")
|
|
44
|
+
@route("/tsv")
|
|
45
|
+
op tsv(
|
|
46
|
+
#suppress "deprecated" "Deprecated in next release"
|
|
47
|
+
@doc("Possible values for colors are [blue,red,green]")
|
|
48
|
+
@query({
|
|
49
|
+
format: "tsv",
|
|
50
|
+
})
|
|
51
|
+
colors: string[],
|
|
52
|
+
): NoContentResponse;
|
|
53
|
+
|
|
54
|
+
@scenario
|
|
55
|
+
@scenarioDoc("""
|
|
56
|
+
This test is testing sending a pipes collection format array query parameters
|
|
57
|
+
""")
|
|
58
|
+
@route("/pipes")
|
|
59
|
+
op pipes(
|
|
60
|
+
#suppress "deprecated" "Deprecated in next release"
|
|
61
|
+
@doc("Possible values for colors are [blue,red,green]")
|
|
62
|
+
@query({
|
|
63
|
+
format: "pipes",
|
|
64
|
+
})
|
|
65
|
+
colors: string[],
|
|
66
|
+
): NoContentResponse;
|
|
67
|
+
|
|
68
|
+
@scenario
|
|
69
|
+
@scenarioDoc("""
|
|
70
|
+
This test is testing sending a csv collection format array query parameters
|
|
71
|
+
""")
|
|
72
|
+
@route("/csv")
|
|
73
|
+
op csv(
|
|
74
|
+
@doc("Possible values for colors are [blue,red,green]")
|
|
75
|
+
@query
|
|
76
|
+
colors: string[],
|
|
77
|
+
): NoContentResponse;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@route("/header")
|
|
81
|
+
@operationGroup
|
|
82
|
+
namespace Header {
|
|
83
|
+
@scenario
|
|
84
|
+
@scenarioDoc("""
|
|
85
|
+
This test is testing sending a csv collection format array header parameters
|
|
86
|
+
""")
|
|
87
|
+
@route("/csv")
|
|
88
|
+
op csv(
|
|
89
|
+
@doc("Possible values for colors are [blue,red,green]")
|
|
90
|
+
@header({
|
|
91
|
+
format: "csv",
|
|
92
|
+
})
|
|
93
|
+
colors: string[],
|
|
94
|
+
): NoContentResponse;
|
|
95
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
const colors = ["blue", "red", "green"];
|
|
6
|
+
|
|
7
|
+
Scenarios.Parameters_CollectionFormat_Query_multi = passOnSuccess({
|
|
8
|
+
uri: `/parameters/collection-format/query/multi`,
|
|
9
|
+
method: "get",
|
|
10
|
+
request: {
|
|
11
|
+
params: { colors: ["blue", "red", "green"] },
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
handler: (req: MockRequest) => {
|
|
17
|
+
req.expect.containsQueryParam("colors", ["blue", "red", "green"], "multi");
|
|
18
|
+
return {
|
|
19
|
+
status: 204,
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
kind: "MockApiDefinition",
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
Scenarios.Parameters_CollectionFormat_Query_csv = passOnSuccess({
|
|
26
|
+
uri: `/parameters/collection-format/query/csv`,
|
|
27
|
+
method: "get",
|
|
28
|
+
request: {
|
|
29
|
+
params: { colors: colors.join(",") },
|
|
30
|
+
},
|
|
31
|
+
response: {
|
|
32
|
+
status: 204,
|
|
33
|
+
},
|
|
34
|
+
handler: (req: MockRequest) => {
|
|
35
|
+
req.expect.containsQueryParam("colors", ["blue", "red", "green"], "csv");
|
|
36
|
+
return {
|
|
37
|
+
status: 204,
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
kind: "MockApiDefinition",
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
Scenarios.Parameters_CollectionFormat_Query_ssv = passOnSuccess({
|
|
44
|
+
uri: `/parameters/collection-format/query/ssv`,
|
|
45
|
+
method: "get",
|
|
46
|
+
request: {
|
|
47
|
+
params: { colors: colors.join(" ") },
|
|
48
|
+
},
|
|
49
|
+
response: {
|
|
50
|
+
status: 204,
|
|
51
|
+
},
|
|
52
|
+
handler: (req: MockRequest) => {
|
|
53
|
+
req.expect.containsQueryParam("colors", ["blue", "red", "green"], "ssv");
|
|
54
|
+
return {
|
|
55
|
+
status: 204,
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
kind: "MockApiDefinition",
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
Scenarios.Parameters_CollectionFormat_Query_tsv = passOnSuccess({
|
|
62
|
+
uri: `/parameters/collection-format/query/tsv`,
|
|
63
|
+
method: "get",
|
|
64
|
+
request: {
|
|
65
|
+
params: { colors: colors.join("\t") },
|
|
66
|
+
},
|
|
67
|
+
response: {
|
|
68
|
+
status: 204,
|
|
69
|
+
},
|
|
70
|
+
handler: (req: MockRequest) => {
|
|
71
|
+
req.expect.containsQueryParam("colors", ["blue", "red", "green"], "tsv");
|
|
72
|
+
return {
|
|
73
|
+
status: 204,
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
kind: "MockApiDefinition",
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
Scenarios.Parameters_CollectionFormat_Query_pipes = passOnSuccess({
|
|
80
|
+
uri: `/parameters/collection-format/query/pipes`,
|
|
81
|
+
method: "get",
|
|
82
|
+
request: {
|
|
83
|
+
params: { colors: colors.join("|") },
|
|
84
|
+
},
|
|
85
|
+
response: {
|
|
86
|
+
status: 204,
|
|
87
|
+
},
|
|
88
|
+
handler: (req: MockRequest) => {
|
|
89
|
+
req.expect.containsQueryParam("colors", ["blue", "red", "green"], "pipes");
|
|
90
|
+
return {
|
|
91
|
+
status: 204,
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
kind: "MockApiDefinition",
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
Scenarios.Parameters_CollectionFormat_Header_csv = passOnSuccess({
|
|
98
|
+
uri: `/parameters/collection-format/header/csv`,
|
|
99
|
+
method: "get",
|
|
100
|
+
request: {
|
|
101
|
+
headers: { colors: colors.join(",") },
|
|
102
|
+
},
|
|
103
|
+
response: {
|
|
104
|
+
status: 204,
|
|
105
|
+
},
|
|
106
|
+
handler: (req: MockRequest) => {
|
|
107
|
+
req.expect.containsHeader("colors", "blue,red,green");
|
|
108
|
+
return {
|
|
109
|
+
status: 204,
|
|
110
|
+
};
|
|
111
|
+
},
|
|
112
|
+
kind: "MockApiDefinition",
|
|
113
|
+
});
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
using Azure.ClientGenerator.Core;
|
|
6
|
+
|
|
7
|
+
@doc("Test for the spread operator.")
|
|
8
|
+
@supportedBy("dpg")
|
|
9
|
+
@scenarioService("/parameters/spread")
|
|
10
|
+
namespace Parameters.Spread;
|
|
11
|
+
|
|
12
|
+
@route("/model")
|
|
13
|
+
@operationGroup
|
|
14
|
+
namespace Model {
|
|
15
|
+
@doc("This is a simple model.")
|
|
16
|
+
model BodyParameter {
|
|
17
|
+
name: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@scenario
|
|
21
|
+
@scenarioDoc("""
|
|
22
|
+
Test case for spread named model.
|
|
23
|
+
|
|
24
|
+
Should not generate request body model named `BodyParameter`.
|
|
25
|
+
Should generate an operation like below:
|
|
26
|
+
```
|
|
27
|
+
spreadAsRequestBody(name: string)
|
|
28
|
+
```
|
|
29
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
30
|
+
|
|
31
|
+
Expected request body:
|
|
32
|
+
```json
|
|
33
|
+
{ "name": "foo" }
|
|
34
|
+
```
|
|
35
|
+
""")
|
|
36
|
+
@route("/request-body")
|
|
37
|
+
@put
|
|
38
|
+
op spreadAsRequestBody(...BodyParameter): NoContentResponse;
|
|
39
|
+
|
|
40
|
+
@doc("This is a model only with `@body` property.")
|
|
41
|
+
model CompositeRequestOnlyWithBody {
|
|
42
|
+
@body body: BodyParameter;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@scenario
|
|
46
|
+
@scenarioDoc("""
|
|
47
|
+
Test case for spread model only with `@body` property.
|
|
48
|
+
|
|
49
|
+
Should generate request body model named `BodyParameter`.
|
|
50
|
+
Should not generate model named `CompositeRequestOnlyWithBody`.
|
|
51
|
+
Should generate an operation like below:
|
|
52
|
+
```
|
|
53
|
+
spreadCompositeRequestOnlyWithBody(bodyParameter: BodyParameter)
|
|
54
|
+
```
|
|
55
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
56
|
+
|
|
57
|
+
Expected request body:
|
|
58
|
+
```json
|
|
59
|
+
{ "name": "foo" }
|
|
60
|
+
```
|
|
61
|
+
""")
|
|
62
|
+
@route("/composite-request-only-with-body")
|
|
63
|
+
@put
|
|
64
|
+
op spreadCompositeRequestOnlyWithBody(...CompositeRequestOnlyWithBody): NoContentResponse;
|
|
65
|
+
|
|
66
|
+
@doc("This is a model without `@body` property.")
|
|
67
|
+
model CompositeRequestWithoutBody {
|
|
68
|
+
@path
|
|
69
|
+
name: string;
|
|
70
|
+
|
|
71
|
+
@header
|
|
72
|
+
testHeader: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@scenario
|
|
76
|
+
@scenarioDoc("""
|
|
77
|
+
Test case for spread model without `@body` property.
|
|
78
|
+
|
|
79
|
+
Should not generate model named `CompositeRequestOnlyWithBody`.
|
|
80
|
+
Should generate an operation like below:
|
|
81
|
+
```
|
|
82
|
+
spreadCompositeRequestWithoutBody(name: string, testHeader: string)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Expected path parameter: name="foo"
|
|
86
|
+
Expected header parameter: testHeader="bar"
|
|
87
|
+
""")
|
|
88
|
+
@route("/composite-request-without-body/{name}")
|
|
89
|
+
@put
|
|
90
|
+
op spreadCompositeRequestWithoutBody(...CompositeRequestWithoutBody): NoContentResponse;
|
|
91
|
+
|
|
92
|
+
@doc("This is a model with all http request decorator.")
|
|
93
|
+
model CompositeRequest {
|
|
94
|
+
@path
|
|
95
|
+
name: string;
|
|
96
|
+
|
|
97
|
+
@header
|
|
98
|
+
testHeader: string;
|
|
99
|
+
|
|
100
|
+
@body
|
|
101
|
+
body: BodyParameter;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@scenario
|
|
105
|
+
@scenarioDoc("""
|
|
106
|
+
Test case for spread model with all http request decorator.
|
|
107
|
+
|
|
108
|
+
Should generate request body model named `BodyParameter`.
|
|
109
|
+
Should not generate model named `CompositeRequest`.
|
|
110
|
+
Should generate an operation like below:
|
|
111
|
+
```
|
|
112
|
+
spreadCompositeRequest(name: string, testHeader: string, bodyParameter: BodyParameter)
|
|
113
|
+
```
|
|
114
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
115
|
+
|
|
116
|
+
Expected path parameter: name="foo"
|
|
117
|
+
Expected header parameter: testHeader="bar"
|
|
118
|
+
Expected request body:
|
|
119
|
+
```json
|
|
120
|
+
{ "name": "foo" }
|
|
121
|
+
```
|
|
122
|
+
""")
|
|
123
|
+
@route("/composite-request/{name}")
|
|
124
|
+
@put
|
|
125
|
+
op spreadCompositeRequest(...CompositeRequest): NoContentResponse;
|
|
126
|
+
|
|
127
|
+
@doc("This is a model with non-body http request decorator.")
|
|
128
|
+
model CompositeRequestMix {
|
|
129
|
+
@path
|
|
130
|
+
name: string;
|
|
131
|
+
|
|
132
|
+
@header
|
|
133
|
+
testHeader: string;
|
|
134
|
+
|
|
135
|
+
prop: string;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
@scenario
|
|
139
|
+
@scenarioDoc("""
|
|
140
|
+
Test case for spread model with non-body http request decorator.
|
|
141
|
+
|
|
142
|
+
Should not generate model named `CompositeRequestMix`.
|
|
143
|
+
Should generate an operation like below:
|
|
144
|
+
```
|
|
145
|
+
spreadCompositeRequestMix(name: string, testHeader: string, prop: string)
|
|
146
|
+
```
|
|
147
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
148
|
+
|
|
149
|
+
Expected path parameter: name="foo"
|
|
150
|
+
Expected header parameter: testHeader="bar"
|
|
151
|
+
Expected request body:
|
|
152
|
+
```json
|
|
153
|
+
{ "prop": "foo" }
|
|
154
|
+
```
|
|
155
|
+
""")
|
|
156
|
+
@route("/composite-request-mix/{name}")
|
|
157
|
+
@put
|
|
158
|
+
op spreadCompositeRequestMix(...CompositeRequestMix): NoContentResponse;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@route("/alias")
|
|
162
|
+
@operationGroup
|
|
163
|
+
namespace Alias {
|
|
164
|
+
alias BodyParameter = {
|
|
165
|
+
name: string;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
@scenario
|
|
169
|
+
@scenarioDoc("""
|
|
170
|
+
Test case for spread alias.
|
|
171
|
+
|
|
172
|
+
Should not generate any model named `BodyParameter`.
|
|
173
|
+
Should generate an operation like:
|
|
174
|
+
```
|
|
175
|
+
spreadAsRequestBody(name: string)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Expected request body:
|
|
179
|
+
```json
|
|
180
|
+
{ "name": "foo" }
|
|
181
|
+
```
|
|
182
|
+
""")
|
|
183
|
+
@route("/request-body")
|
|
184
|
+
@put
|
|
185
|
+
op spreadAsRequestBody(...BodyParameter): NoContentResponse;
|
|
186
|
+
|
|
187
|
+
model InnerModel {
|
|
188
|
+
name: string;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
alias InnerModelParameter = {
|
|
192
|
+
@path
|
|
193
|
+
id: string;
|
|
194
|
+
|
|
195
|
+
...InnerModel;
|
|
196
|
+
|
|
197
|
+
@header
|
|
198
|
+
`x-ms-test-header`: string;
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
@scenario
|
|
202
|
+
@scenarioDoc("""
|
|
203
|
+
Test case for spread alias.
|
|
204
|
+
|
|
205
|
+
Should not generate any model named `InnerModel`.
|
|
206
|
+
Should not generate any model named `InnerModelParameter`.
|
|
207
|
+
Should generate an operation like:
|
|
208
|
+
```
|
|
209
|
+
spreadParameterWithInnerModel(id: string, x_ms_test_header: string, name: string)
|
|
210
|
+
```
|
|
211
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
212
|
+
|
|
213
|
+
Expected path parameter: id="1"
|
|
214
|
+
Expected header parameter: x-ms-test-header="bar"
|
|
215
|
+
Expected request body:
|
|
216
|
+
```json
|
|
217
|
+
{ "name": "foo" }
|
|
218
|
+
```
|
|
219
|
+
""")
|
|
220
|
+
@route("/inner-model-parameter/{id}")
|
|
221
|
+
@post
|
|
222
|
+
op spreadParameterWithInnerModel(...InnerModelParameter): NoContentResponse;
|
|
223
|
+
|
|
224
|
+
alias RequestParameter = {
|
|
225
|
+
@path
|
|
226
|
+
id: string;
|
|
227
|
+
|
|
228
|
+
@header
|
|
229
|
+
`x-ms-test-header`: string;
|
|
230
|
+
|
|
231
|
+
name: string;
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
@scenario
|
|
235
|
+
@scenarioDoc("""
|
|
236
|
+
Test case for spread alias with path and header parameter.
|
|
237
|
+
|
|
238
|
+
Should not generate any model named `RequestParameter`.
|
|
239
|
+
Should generate an operation like below:
|
|
240
|
+
```
|
|
241
|
+
spreadAsRequestParameter(id: string, x_ms_test_header: string, name: string)
|
|
242
|
+
```
|
|
243
|
+
Note the parameter name may be normalized and vary by language.
|
|
244
|
+
|
|
245
|
+
Expected path parameter: id="1"
|
|
246
|
+
Expected header parameter: x-ms-test-header="bar"
|
|
247
|
+
Expected request body:
|
|
248
|
+
```json
|
|
249
|
+
{ "name": "foo" }
|
|
250
|
+
```
|
|
251
|
+
""")
|
|
252
|
+
@route("/request-parameter/{id}")
|
|
253
|
+
@put
|
|
254
|
+
op spreadAsRequestParameter(...RequestParameter): NoContentResponse;
|
|
255
|
+
|
|
256
|
+
alias MultipleRequestParameters = {
|
|
257
|
+
@path
|
|
258
|
+
id: string;
|
|
259
|
+
|
|
260
|
+
@header
|
|
261
|
+
`x-ms-test-header`: string;
|
|
262
|
+
|
|
263
|
+
/** required string */
|
|
264
|
+
requiredString: string;
|
|
265
|
+
|
|
266
|
+
/** optional int */
|
|
267
|
+
optionalInt?: int32;
|
|
268
|
+
|
|
269
|
+
/** required int */
|
|
270
|
+
requiredIntList: int32[];
|
|
271
|
+
|
|
272
|
+
/** optional string */
|
|
273
|
+
optionalStringList?: string[];
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
@scenario
|
|
277
|
+
@scenarioDoc("""
|
|
278
|
+
Test case for spread alias including 6 parameters. May handle as property bag for these parameters.
|
|
279
|
+
|
|
280
|
+
Should not generate any model named `MultipleRequestParameters`.
|
|
281
|
+
Since it contains both optional properties and required properties, the method signature might vary across different languages.
|
|
282
|
+
Note it's also acceptable if some languages handle it as property bag.
|
|
283
|
+
|
|
284
|
+
Expected path parameter: id="1"
|
|
285
|
+
Expected header parameter: x-ms-test-header="bar"
|
|
286
|
+
Expected request body:
|
|
287
|
+
```json
|
|
288
|
+
{
|
|
289
|
+
"requiredString": "foo",
|
|
290
|
+
"optionalInt": 1,
|
|
291
|
+
"requiredIntList": [1, 2],
|
|
292
|
+
"optionalStringList": ["foo", "bar"]
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
""")
|
|
296
|
+
@route("/multiple-parameters/{id}")
|
|
297
|
+
@put
|
|
298
|
+
op spreadWithMultipleParameters(...MultipleRequestParameters): NoContentResponse;
|
|
299
|
+
|
|
300
|
+
alias InnerAlias = {
|
|
301
|
+
@doc("name of the Thing")
|
|
302
|
+
name: string;
|
|
303
|
+
|
|
304
|
+
@doc("age of the Thing")
|
|
305
|
+
age: int32;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
alias InnerAliasParameter = {
|
|
309
|
+
@path id: string;
|
|
310
|
+
...InnerAlias;
|
|
311
|
+
|
|
312
|
+
@header
|
|
313
|
+
`x-ms-test-header`: string;
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
@scenario
|
|
317
|
+
@scenarioDoc("""
|
|
318
|
+
Test case for spread alias with contains another alias property as body.
|
|
319
|
+
|
|
320
|
+
Should not generate any model named `InnerAlias` and `InnerAliasParameter`.
|
|
321
|
+
Should generate an operation like below:
|
|
322
|
+
```
|
|
323
|
+
spreadParameterWithInnerAlias(id: string, name: string, age: int32, x_ms_test_header: string)
|
|
324
|
+
```
|
|
325
|
+
Note the parameter name is guessed from the model name and it may vary by language.
|
|
326
|
+
Expected path parameter: id="1"
|
|
327
|
+
Expected header parameter: x-ms-test-header="bar"
|
|
328
|
+
Expected request body:
|
|
329
|
+
```json
|
|
330
|
+
{
|
|
331
|
+
"name": "foo",
|
|
332
|
+
"age": 1
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
""")
|
|
336
|
+
@route("/inner-alias-parameter")
|
|
337
|
+
@doc("spread an alias with contains another alias property as body.")
|
|
338
|
+
@post
|
|
339
|
+
op spreadParameterWithInnerAlias(...InnerAliasParameter): NoContentResponse;
|
|
340
|
+
}
|