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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { assert } from "chai";
import { PreviewVersionClient } from "./generated/azure/versioning/previewVersion/src/index.js";

describe("PreviewVersionClient Rest Client", () => {
let client: PreviewVersionClient;

beforeEach(() => {
client = new PreviewVersionClient({
endpoint: "http://localhost:3002",
allowInsecureConnection: true
});
});

it("should get widget with preview version - includes color property", async () => {
// Test @previewVersion with stable operations - should work across all versions
// Color is expected in the response because we are using preview version client
const result = await client.getWidget("widget-123");

assert.strictEqual(result?.id, "widget-123");
assert.strictEqual(result?.name, "Sample Widget");
assert.strictEqual(result?.color, "blue");
});

it("should update widget color - preview-only operation", async () => {
// Test @previewVersion with preview-only operations - only available in preview version
// This operation can be called because the client uses preview api version
const result = await client.updateWidgetColor("widget-123", {
color: "red"
});

assert.strictEqual(result?.id, "widget-123");
assert.strictEqual(result?.name, "Sample Widget");
assert.strictEqual(result?.color, "red");
});

it("should list widgets with color filtering", async () => {
// Test @previewVersion with preview-specific parameters
// color parameter is only available in preview version
const result = await client.listWidgets({
name: "test",
color: "blue"
});

assert.strictEqual(result.widgets.length, 1);
assert.strictEqual(result.widgets[0]?.id, "widget-1");
assert.strictEqual(result.widgets[0]?.name, "test");
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/**
!/src
/src/**
!/src/index.d.ts
!/.gitignore
!/tspconfig.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { ClientOptions } from '@azure-rest/core-client';
import { OperationOptions } from '@azure-rest/core-client';
import { Pipeline } from '@azure/core-rest-pipeline';

export declare interface GetWidgetOptionalParams extends OperationOptions {
}

export declare enum KnownApiVersions {
V20240101 = "2024-01-01",
V20240601 = "2024-06-01",
V20241201Preview = "2024-12-01-preview"
}

export declare interface ListWidgetsOptionalParams extends OperationOptions {
name?: string;
color?: string;
}

export declare class PreviewVersionClient {
private _client;
readonly pipeline: Pipeline;
constructor(options?: PreviewVersionClientOptionalParams);
listWidgets(options?: ListWidgetsOptionalParams): Promise<{
widgets: Widget[];
}>;
updateWidgetColor(id: string, colorUpdate: UpdateWidgetColorRequest, options?: UpdateWidgetColorOptionalParams): Promise<Widget | null>;
getWidget(id: string, options?: GetWidgetOptionalParams): Promise<Widget | null>;
}

export declare interface PreviewVersionClientOptionalParams extends ClientOptions {
}

export declare interface UpdateWidgetColorOptionalParams extends OperationOptions {
}

export declare interface UpdateWidgetColorRequest {
color: string;
}

export declare interface Widget {
id: string;
name: string;
color?: string;
}

export { }
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
emit:
- "@azure-tools/typespec-ts"
options:
"@azure-tools/typespec-ts":
emitter-output-dir: "{project-root}"
add-credentials: false
azure-sdk-for-js: false
is-modular-library: true
package-details:
name: "@azure/versioning-preview"
version: "1.0.0"
4 changes: 4 additions & 0 deletions packages/typespec-ts/test/commands/cadl-ranch-list.js
Original file line number Diff line number Diff line change
Expand Up @@ -863,6 +863,10 @@ export const azureModularTsps = [
{
outputPath: "azure/client-generator-core/hierarchy-building",
inputPath: "azure/client-generator-core/hierarchy-building"
},
{
outputPath: "azure/versioning/previewVersion",
inputPath: "azure/versioning/previewVersion"
}
// skip due to issue https://github.com/Azure/autorest.typescript/issues/3494
// {
Expand Down
Loading