Skip to content

Commit 8c0448b

Browse files
authored
Add case for apiVersion header/path/query (#3303)
* add case for apiVersion header/path/query * fix * format * revert change * update
1 parent 1ac3e47 commit 8c0448b

25 files changed

Lines changed: 418 additions & 0 deletions
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { assert } from "chai";
2+
import HeaderClientFactory, {
3+
HeaderClient
4+
} from "./generated/azure/client-generator-core/api-version/header/src/index.js";
5+
6+
describe("Azure Client Generator Core - API Version Header", () => {
7+
let client: HeaderClient;
8+
9+
beforeEach(() => {
10+
client = HeaderClientFactory({
11+
allowInsecureConnection: true
12+
});
13+
});
14+
15+
it("should handle API version through header parameter", async () => {
16+
const result = await client
17+
.path("/azure/client-generator-core/api-version/header")
18+
.post({
19+
headers: {
20+
"x-ms-version": "2025-01-01"
21+
}
22+
});
23+
24+
assert.strictEqual(result.status, "200");
25+
});
26+
});
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { assert } from "chai";
2+
import PathClientFactory, {
3+
PathClient
4+
} from "./generated/azure/client-generator-core/api-version/path/src/index.js";
5+
6+
describe("Azure Client Generator Core - API Version Path", () => {
7+
let client: PathClient;
8+
9+
beforeEach(() => {
10+
client = PathClientFactory({
11+
allowInsecureConnection: true
12+
});
13+
});
14+
15+
it("should handle API version through path parameter", async () => {
16+
const result = await client
17+
.path(
18+
"/azure/client-generator-core/api-version/path/{version}",
19+
"2025-01-01"
20+
)
21+
.post();
22+
23+
assert.strictEqual(result.status, "200");
24+
});
25+
});
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { assert } from "chai";
2+
import QueryClientFactory, {
3+
QueryClient
4+
} from "./generated/azure/client-generator-core/api-version/query/src/index.js";
5+
6+
describe("Azure Client Generator Core - API Version Query", () => {
7+
let client: QueryClient;
8+
9+
beforeEach(() => {
10+
client = QueryClientFactory({
11+
allowInsecureConnection: true
12+
});
13+
});
14+
15+
it("should handle API version through query parameter", async () => {
16+
const result = await client
17+
.path("/azure/client-generator-core/api-version/query")
18+
.post({
19+
queryParameters: {
20+
version: "2025-01-01"
21+
}
22+
});
23+
24+
assert.strictEqual(result.status, "200");
25+
});
26+
});
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
!/src
3+
/src/**
4+
!/src/index.d.ts
5+
!/.gitignore
6+
!/tspconfig.yaml
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import type { Client } from '@azure-rest/core-client';
2+
import type { ClientOptions } from '@azure-rest/core-client';
3+
import type { HttpResponse } from '@azure-rest/core-client';
4+
import type { RawHttpHeadersInput } from '@azure/core-rest-pipeline';
5+
import type { RequestParameters } from '@azure-rest/core-client';
6+
import type { StreamableMethod } from '@azure-rest/core-client';
7+
8+
declare function createClient(options?: HeaderClientOptions): HeaderClient;
9+
export default createClient;
10+
11+
export declare interface HeaderApiVersion {
12+
post(options?: HeaderApiVersionParameters): StreamableMethod<HeaderApiVersion200Response>;
13+
}
14+
15+
export declare interface HeaderApiVersion200Response extends HttpResponse {
16+
status: "200";
17+
}
18+
19+
export declare interface HeaderApiVersionHeaderParam {
20+
headers: RawHttpHeadersInput & HeaderApiVersionHeaders;
21+
}
22+
23+
export declare interface HeaderApiVersionHeaders {
24+
"x-ms-version": string;
25+
}
26+
27+
export declare type HeaderApiVersionParameters = HeaderApiVersionHeaderParam & RequestParameters;
28+
29+
export declare type HeaderClient = Client & {
30+
path: Routes;
31+
};
32+
33+
export declare interface HeaderClientOptions extends ClientOptions {
34+
}
35+
36+
export declare interface Routes {
37+
(path: "/azure/client-generator-core/api-version/header"): HeaderApiVersion;
38+
}
39+
40+
export { }
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
emit:
2+
- "@azure-tools/typespec-ts"
3+
options:
4+
"@azure-tools/typespec-ts":
5+
emitter-output-dir: "{project-root}"
6+
add-credentials: false
7+
is-modular-library: false
8+
azure-sdk-for-js: false
9+
package-details:
10+
name: "@azure/client-generator-core-header"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
!/src
3+
/src/**
4+
!/src/index.d.ts
5+
!/.gitignore
6+
!/tspconfig.yaml
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import type { Client } from '@azure-rest/core-client';
2+
import type { ClientOptions } from '@azure-rest/core-client';
3+
import type { HttpResponse } from '@azure-rest/core-client';
4+
import type { RequestParameters } from '@azure-rest/core-client';
5+
import type { StreamableMethod } from '@azure-rest/core-client';
6+
7+
declare function createClient({ apiVersion, ...options }?: PathClientOptions): PathClient;
8+
export default createClient;
9+
10+
export declare interface PathApiVersion {
11+
post(options?: PathApiVersionParameters): StreamableMethod<PathApiVersion200Response>;
12+
}
13+
14+
export declare interface PathApiVersion200Response extends HttpResponse {
15+
status: "200";
16+
}
17+
18+
export declare type PathApiVersionParameters = RequestParameters;
19+
20+
export declare type PathClient = Client & {
21+
path: Routes;
22+
};
23+
24+
export declare interface PathClientOptions extends ClientOptions {
25+
apiVersion?: string;
26+
}
27+
28+
export declare interface Routes {
29+
(path: "/azure/client-generator-core/api-version/path/{version}", version: string): PathApiVersion;
30+
}
31+
32+
export { }
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
emit:
2+
- "@azure-tools/typespec-ts"
3+
options:
4+
"@azure-tools/typespec-ts":
5+
emitter-output-dir: "{project-root}"
6+
add-credentials: false
7+
is-modular-library: false
8+
azure-sdk-for-js: false
9+
package-details:
10+
name: "@azure/client-generator-core-path"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
!/src
3+
/src/**
4+
!/src/index.d.ts
5+
!/.gitignore
6+
!/tspconfig.yaml

0 commit comments

Comments
 (0)