@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,25 @@
|
|
|
1
|
+
import { json, passOnSuccess } from "@typespec/spec-api";
|
|
2
|
+
export const Scenarios = {};
|
|
3
|
+
Scenarios.Versioning_ReturnTypeChangedFrom_test = passOnSuccess({
|
|
4
|
+
uri: `/versioning/return-type-changed-from/api-version:v2/test`,
|
|
5
|
+
method: `post`,
|
|
6
|
+
request: {
|
|
7
|
+
body: "test",
|
|
8
|
+
headers: {
|
|
9
|
+
"Content-Type": "text/plain",
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
response: {
|
|
13
|
+
status: 200,
|
|
14
|
+
body: json("test"),
|
|
15
|
+
},
|
|
16
|
+
handler: (req) => {
|
|
17
|
+
req.expect.bodyEquals("test");
|
|
18
|
+
return {
|
|
19
|
+
status: 200,
|
|
20
|
+
body: json("test"),
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
kind: "MockApiDefinition",
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=mockapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockapi.js","sourceRoot":"","sources":["../../../../specs/versioning/returnTypeChangedFrom/mockapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,aAAa,EAAmB,MAAM,oBAAoB,CAAC;AAEvF,MAAM,CAAC,MAAM,SAAS,GAAoC,EAAE,CAAC;AAE7D,SAAS,CAAC,qCAAqC,GAAG,aAAa,CAAC;IAC9D,GAAG,EAAE,0DAA0D;IAC/D,MAAM,EAAE,MAAM;IACd,OAAO,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP,cAAc,EAAE,YAAY;SAC7B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;KACnB;IACD,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE;QAC5B,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;SACnB,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockapi.d.ts","sourceRoot":"","sources":["../../../../specs/versioning/typeChangedFrom/mockapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAM,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { json, passOnSuccess } from "@typespec/spec-api";
|
|
2
|
+
export const Scenarios = {};
|
|
3
|
+
Scenarios.Versioning_TypeChangedFrom_test = passOnSuccess({
|
|
4
|
+
uri: `/versioning/type-changed-from/api-version:v2/test`,
|
|
5
|
+
method: `post`,
|
|
6
|
+
request: {
|
|
7
|
+
params: {
|
|
8
|
+
param: "baz",
|
|
9
|
+
},
|
|
10
|
+
body: {
|
|
11
|
+
prop: "foo",
|
|
12
|
+
changedProp: "bar",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
response: {
|
|
16
|
+
status: 200,
|
|
17
|
+
body: json({ prop: "foo", changedProp: "bar" }),
|
|
18
|
+
},
|
|
19
|
+
handler: (req) => {
|
|
20
|
+
req.expect.bodyEquals({ prop: "foo", changedProp: "bar" });
|
|
21
|
+
req.expect.containsQueryParam("param", "baz");
|
|
22
|
+
return {
|
|
23
|
+
status: 200,
|
|
24
|
+
body: json({ prop: "foo", changedProp: "bar" }),
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
kind: "MockApiDefinition",
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=mockapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockapi.js","sourceRoot":"","sources":["../../../../specs/versioning/typeChangedFrom/mockapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,aAAa,EAAmB,MAAM,oBAAoB,CAAC;AAEvF,MAAM,CAAC,MAAM,SAAS,GAAoC,EAAE,CAAC;AAE7D,SAAS,CAAC,+BAA+B,GAAG,aAAa,CAAC;IACxD,GAAG,EAAE,mDAAmD;IACxD,MAAM,EAAE,MAAM;IACd,OAAO,EAAE;QACP,MAAM,EAAE;YACN,KAAK,EAAE,KAAK;SACb;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,KAAK;SACnB;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;KAChD;IACD,OAAO,EAAE,CAAC,GAAgB,EAAE,EAAE;QAC5B,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@typespec/http-specs",
|
|
3
|
+
"version": "0.37.2",
|
|
4
|
+
"description": "Spec scenarios and mock apis",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=16.0.0"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/microsoft/typespec.git"
|
|
13
|
+
},
|
|
14
|
+
"author": "Microsoft",
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/microsoft/typespec/issues"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/microsoft/typespec#readme",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"multer": "^1.4.5-lts.1",
|
|
22
|
+
"dotenv": "~16.4.5",
|
|
23
|
+
"@typespec/spec": "0.1.0",
|
|
24
|
+
"@typespec/spec-api": "~0.1.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/node": "~22.7.1",
|
|
28
|
+
"@types/multer": "^1.4.10",
|
|
29
|
+
"rimraf": "~6.0.1",
|
|
30
|
+
"typescript": "~5.6.2",
|
|
31
|
+
"@typespec/openapi": "~0.60.0",
|
|
32
|
+
"@typespec/openapi3": "~0.60.0"
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"@typespec/spec-lib": "~0.1.0",
|
|
36
|
+
"@typespec/http": "~0.60.0",
|
|
37
|
+
"@typespec/compiler": "~0.60.1",
|
|
38
|
+
"@typespec/rest": "~0.60.0",
|
|
39
|
+
"@typespec/versioning": "~0.60.0",
|
|
40
|
+
"@typespec/xml": "~0.60.0"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"watch": "tsc -p ./tsconfig.build.json --watch",
|
|
44
|
+
"build": "tsc -p ./tsconfig.build.json",
|
|
45
|
+
"clean": "rimraf dist/ temp/",
|
|
46
|
+
"validate-scenarios": "spec validate-scenarios ./specs",
|
|
47
|
+
"generate-scenarios-summary": "spec generate-scenarios-summary ./specs",
|
|
48
|
+
"validate-mock-apis": "spec validate-mock-apis ./specs",
|
|
49
|
+
"check-scenario-coverage": "spec check-coverage ./specs",
|
|
50
|
+
"serve": "spec serve ./specs",
|
|
51
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
52
|
+
}
|
|
53
|
+
}
|
package/specs/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
|
|
6
|
+
@scenarioService("/authentication/api-key")
|
|
7
|
+
@doc("Illustrates clients generated with ApiKey authentication.")
|
|
8
|
+
@useAuth(ApiKeyAuth<ApiKeyLocation.header, "x-ms-api-key">)
|
|
9
|
+
namespace Authentication.ApiKey;
|
|
10
|
+
|
|
11
|
+
@scenario
|
|
12
|
+
@scenarioDoc("Expects header 'x-ms-api-key': 'valid-key'")
|
|
13
|
+
@doc("Check whether client is authenticated")
|
|
14
|
+
@get
|
|
15
|
+
@route("/valid")
|
|
16
|
+
op valid(): NoContentResponse;
|
|
17
|
+
|
|
18
|
+
@scenario
|
|
19
|
+
@scenarioDoc("""
|
|
20
|
+
Expect error code 403 and error body:
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"error": {
|
|
24
|
+
"code": "InvalidApiKey",
|
|
25
|
+
"message": "API key is invalid"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
""")
|
|
30
|
+
@doc("Check whether client is authenticated.")
|
|
31
|
+
@get
|
|
32
|
+
@route("/invalid")
|
|
33
|
+
op invalid(): NoContentResponse | InvalidAuth;
|
|
34
|
+
|
|
35
|
+
@error
|
|
36
|
+
model InvalidAuth {
|
|
37
|
+
@statusCode _: 403;
|
|
38
|
+
error: string;
|
|
39
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Authentication_ApiKey_invalid = passOnSuccess({
|
|
6
|
+
uri: `/authentication/api-key/invalid`,
|
|
7
|
+
method: `get`,
|
|
8
|
+
request: {
|
|
9
|
+
headers: {
|
|
10
|
+
"x-ms-api-key": "valid-key",
|
|
11
|
+
},
|
|
12
|
+
status: 403,
|
|
13
|
+
},
|
|
14
|
+
response: {
|
|
15
|
+
status: 403,
|
|
16
|
+
body: json({
|
|
17
|
+
error: "invalid-api-key",
|
|
18
|
+
}),
|
|
19
|
+
},
|
|
20
|
+
handler: (req: MockRequest) => {
|
|
21
|
+
return {
|
|
22
|
+
status: 403,
|
|
23
|
+
body: json({
|
|
24
|
+
error: "invalid-api-key",
|
|
25
|
+
}),
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
kind: "MockApiDefinition",
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
Scenarios.Authentication_ApiKey_valid = passOnSuccess({
|
|
32
|
+
uri: `/authentication/api-key/valid`,
|
|
33
|
+
method: `get`,
|
|
34
|
+
request: {
|
|
35
|
+
headers: {
|
|
36
|
+
"x-ms-api-key": "valid-key",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
response: {
|
|
40
|
+
status: 204,
|
|
41
|
+
},
|
|
42
|
+
handler: (req: MockRequest) => {
|
|
43
|
+
req.expect.containsHeader("x-ms-api-key", "valid-key");
|
|
44
|
+
return { status: 204 };
|
|
45
|
+
},
|
|
46
|
+
kind: "MockApiDefinition",
|
|
47
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {
|
|
2
|
+
json,
|
|
3
|
+
mockapi,
|
|
4
|
+
MockRequest,
|
|
5
|
+
passOnCode,
|
|
6
|
+
PassOnCodeScenario,
|
|
7
|
+
passOnSuccess,
|
|
8
|
+
PassOnSuccessScenario,
|
|
9
|
+
ScenarioMockApi,
|
|
10
|
+
} from "@typespec/spec-api";
|
|
11
|
+
|
|
12
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
13
|
+
|
|
14
|
+
interface ValidAndInvalidCodeScenarios {
|
|
15
|
+
valid: PassOnSuccessScenario;
|
|
16
|
+
invalid: PassOnCodeScenario;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function getValidAndInvalidScenarios(
|
|
20
|
+
scenarioFolder: string,
|
|
21
|
+
errorCode: string,
|
|
22
|
+
authenticationValidation: (req: MockRequest) => void,
|
|
23
|
+
): ValidAndInvalidCodeScenarios {
|
|
24
|
+
return {
|
|
25
|
+
valid: passOnSuccess(
|
|
26
|
+
mockapi.get(`/authentication/${scenarioFolder}/valid`, (req) => {
|
|
27
|
+
authenticationValidation(req);
|
|
28
|
+
return { status: 204 };
|
|
29
|
+
}),
|
|
30
|
+
),
|
|
31
|
+
invalid: passOnCode(
|
|
32
|
+
403,
|
|
33
|
+
mockapi.get(`/authentication/${scenarioFolder}/invalid`, (req) => {
|
|
34
|
+
return {
|
|
35
|
+
status: 403,
|
|
36
|
+
body: json({
|
|
37
|
+
error: errorCode,
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
}),
|
|
41
|
+
),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
|
|
6
|
+
@scenarioService("/authentication/http/custom")
|
|
7
|
+
@doc("Illustrates clients generated with generic HTTP auth.")
|
|
8
|
+
@useAuth({
|
|
9
|
+
type: AuthType.http,
|
|
10
|
+
scheme: "SharedAccessKey",
|
|
11
|
+
})
|
|
12
|
+
namespace Authentication.Http.Custom;
|
|
13
|
+
|
|
14
|
+
@scenario
|
|
15
|
+
@scenarioDoc("Expects header 'Authorization': 'SharedAccessKey valid-key'")
|
|
16
|
+
@doc("Check whether client is authenticated")
|
|
17
|
+
@get
|
|
18
|
+
@route("/valid")
|
|
19
|
+
op valid(): NoContentResponse;
|
|
20
|
+
|
|
21
|
+
@scenario
|
|
22
|
+
@scenarioDoc("""
|
|
23
|
+
Expect error code 403 and error body:
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"error": "invalid-api-key"
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
""")
|
|
30
|
+
@doc("Check whether client is authenticated.")
|
|
31
|
+
@get
|
|
32
|
+
@route("/invalid")
|
|
33
|
+
op invalid(): NoContentResponse | InvalidAuth;
|
|
34
|
+
|
|
35
|
+
@error
|
|
36
|
+
model InvalidAuth {
|
|
37
|
+
@statusCode _: 403;
|
|
38
|
+
error: string;
|
|
39
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Authentication_Http_Custom_valid = passOnSuccess({
|
|
6
|
+
uri: `/authentication/http/custom/valid`,
|
|
7
|
+
method: "get",
|
|
8
|
+
request: {
|
|
9
|
+
headers: {
|
|
10
|
+
authorization: "SharedAccessKey valid-key",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
handler: (req: MockRequest) => {
|
|
17
|
+
req.expect.containsHeader("authorization", "SharedAccessKey valid-key");
|
|
18
|
+
return { status: 204 };
|
|
19
|
+
},
|
|
20
|
+
kind: "MockApiDefinition",
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
Scenarios.Authentication_Http_Custom_invalid = passOnSuccess({
|
|
24
|
+
uri: `/authentication/http/custom/invalid`,
|
|
25
|
+
method: "get",
|
|
26
|
+
request: {
|
|
27
|
+
headers: {
|
|
28
|
+
authorization: "SharedAccessKey valid-key",
|
|
29
|
+
},
|
|
30
|
+
status: 403,
|
|
31
|
+
},
|
|
32
|
+
response: {
|
|
33
|
+
status: 403,
|
|
34
|
+
body: json({
|
|
35
|
+
error: "invalid-api-key",
|
|
36
|
+
}),
|
|
37
|
+
},
|
|
38
|
+
handler: (req: MockRequest) => {
|
|
39
|
+
return {
|
|
40
|
+
status: 403,
|
|
41
|
+
body: json({
|
|
42
|
+
error: "invalid-api-key",
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
kind: "MockApiDefinition",
|
|
47
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
|
|
6
|
+
@scenarioService("/authentication/oauth2")
|
|
7
|
+
@doc("Illustrates clients generated with OAuth2 authentication.")
|
|
8
|
+
@useAuth(OAuth2Auth<[MyFlow]>)
|
|
9
|
+
namespace Authentication.OAuth2;
|
|
10
|
+
|
|
11
|
+
model MyFlow {
|
|
12
|
+
type: OAuth2FlowType.implicit;
|
|
13
|
+
authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize";
|
|
14
|
+
scopes: ["https://security.microsoft.com/.default"];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@scenario
|
|
18
|
+
@scenarioDoc("Expects header 'authorization': 'Bearer https://security.microsoft.com/.default'")
|
|
19
|
+
@doc("Check whether client is authenticated")
|
|
20
|
+
@get
|
|
21
|
+
@route("/valid")
|
|
22
|
+
op valid(): NoContentResponse;
|
|
23
|
+
|
|
24
|
+
@scenario
|
|
25
|
+
@scenarioDoc("""
|
|
26
|
+
Expect error code 400 and error body:
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"message": "Expected Bearer x but got Bearer y",
|
|
30
|
+
"expected": "Bearer x",
|
|
31
|
+
"actual": "Bearer y",
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
""")
|
|
35
|
+
@doc("Check whether client is authenticated. Will return an invalid bearer error.")
|
|
36
|
+
@get
|
|
37
|
+
@route("/invalid")
|
|
38
|
+
op invalid(): NoContentResponse | InvalidAuth;
|
|
39
|
+
|
|
40
|
+
@error
|
|
41
|
+
model InvalidAuth {
|
|
42
|
+
@statusCode _: 403;
|
|
43
|
+
error: string;
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Authentication_OAuth2_valid = passOnSuccess({
|
|
6
|
+
uri: `/authentication/oauth2/valid`,
|
|
7
|
+
method: "get",
|
|
8
|
+
request: {
|
|
9
|
+
headers: {
|
|
10
|
+
authorization: "Bearer https://security.microsoft.com/.default",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
handler: (req: MockRequest) => {
|
|
17
|
+
req.expect.containsHeader("authorization", "Bearer https://security.microsoft.com/.default");
|
|
18
|
+
return { status: 204 };
|
|
19
|
+
},
|
|
20
|
+
kind: "MockApiDefinition",
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
Scenarios.Authentication_OAuth2_invalid = passOnSuccess({
|
|
24
|
+
uri: `/authentication/oauth2/invalid`,
|
|
25
|
+
method: "get",
|
|
26
|
+
request: {
|
|
27
|
+
status: 403,
|
|
28
|
+
},
|
|
29
|
+
response: {
|
|
30
|
+
status: 403,
|
|
31
|
+
body: json({
|
|
32
|
+
error: "invalid-grant",
|
|
33
|
+
}),
|
|
34
|
+
},
|
|
35
|
+
handler: (req: MockRequest) => {
|
|
36
|
+
return {
|
|
37
|
+
status: 403,
|
|
38
|
+
body: json({
|
|
39
|
+
error: "invalid-grant",
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
kind: "MockApiDefinition",
|
|
44
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
|
|
6
|
+
@scenarioService("/authentication/union")
|
|
7
|
+
@doc("Illustrates clients generated with ApiKey and OAuth2 authentication.")
|
|
8
|
+
@useAuth(ApiKeyAuth<ApiKeyLocation.header, "x-ms-api-key"> | OAuth2Auth<[MyFlow]>)
|
|
9
|
+
namespace Authentication.Union;
|
|
10
|
+
|
|
11
|
+
model MyFlow {
|
|
12
|
+
type: OAuth2FlowType.implicit;
|
|
13
|
+
authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize";
|
|
14
|
+
scopes: ["https://security.microsoft.com/.default"];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@scenario
|
|
18
|
+
@scenarioDoc("Expects header 'x-ms-api-key': 'valid-key'")
|
|
19
|
+
@doc("Check whether client is authenticated")
|
|
20
|
+
@get
|
|
21
|
+
@route("/validkey")
|
|
22
|
+
op validKey(): NoContentResponse;
|
|
23
|
+
|
|
24
|
+
@scenario
|
|
25
|
+
@scenarioDoc("Expects header 'authorization': 'Bearer https://security.microsoft.com/.default'")
|
|
26
|
+
@doc("Check whether client is authenticated")
|
|
27
|
+
@get
|
|
28
|
+
@route("/validtoken")
|
|
29
|
+
op validToken(): NoContentResponse;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Authentication_Union_validKey = passOnSuccess({
|
|
6
|
+
uri: `/authentication/union/validkey`,
|
|
7
|
+
method: "get",
|
|
8
|
+
request: {
|
|
9
|
+
headers: {
|
|
10
|
+
"x-ms-api-key": "valid-key",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
handler: (req: MockRequest) => {
|
|
17
|
+
req.expect.containsHeader("x-ms-api-key", "valid-key");
|
|
18
|
+
return { status: 204 };
|
|
19
|
+
},
|
|
20
|
+
kind: "MockApiDefinition",
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
Scenarios.Authentication_Union_validToken = passOnSuccess({
|
|
24
|
+
uri: `/authentication/union/validtoken`,
|
|
25
|
+
method: "get",
|
|
26
|
+
request: {
|
|
27
|
+
headers: {
|
|
28
|
+
authorization: "Bearer https://security.microsoft.com/.default",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
response: {
|
|
32
|
+
status: 204,
|
|
33
|
+
},
|
|
34
|
+
handler: (req: MockRequest) => {
|
|
35
|
+
req.expect.containsHeader("authorization", "Bearer https://security.microsoft.com/.default");
|
|
36
|
+
return { status: 204 };
|
|
37
|
+
},
|
|
38
|
+
kind: "MockApiDefinition",
|
|
39
|
+
});
|