Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add checks for operations #8491

Merged
merged 2 commits into from
Jun 21, 2024
Merged
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
Expand Up @@ -199,6 +199,9 @@ const findAddedOperation = (metaDataOld: TSExportedMetaData, metaDataNew: TSExpo
const addOperation: string[] = [];
Object.keys(metaDataNew.operationInterface).forEach(newOperationGroup => {
const oldOperationGroup = oldSdkType === newSdkType ? newOperationGroup : newToOldMap[newOperationGroup];
if(!metaDataOld.operationInterface[oldOperationGroup]) {
return;
}
const newInterfaceMethodNames = getAllMethodNameInInterface(metaDataNew.operationInterface[newOperationGroup]);
const oldInterfaceMethodNames = getAllMethodNameInInterface(metaDataOld.operationInterface[oldOperationGroup]);
newInterfaceMethodNames
Expand Down Expand Up @@ -476,6 +479,9 @@ const findRemovedOperation = (metaDataOld: TSExportedMetaData, metaDataNew: TSEx

Object.keys(metaDataOld.operationInterface).forEach(oldOperationGroup => {
const newOperationGroup = oldSdkType === newSdkType ? oldOperationGroup : oldToNew[oldOperationGroup];
if(!metaDataNew.operationInterface[newOperationGroup]) {
return;
wanlwanl marked this conversation as resolved.
Show resolved Hide resolved
}
const newInterfaceMethodNames = getAllMethodNameInInterface(metaDataNew.operationInterface[newOperationGroup]);
const oldInterfaceMethodNames = getAllMethodNameInInterface(metaDataOld.operationInterface[oldOperationGroup]);
oldInterfaceMethodNames
Expand All @@ -492,6 +498,9 @@ const findOperationSignatureChange = (metaDataOld: TSExportedMetaData, metaDataN
const operationSignatureChange: string[] = [];
Object.keys(metaDataNew.operationInterface).forEach(newOperationGroup => {
const oldOperationGroup = oldSdkType === newSdkType ? newOperationGroup : newToOld[newOperationGroup];
if (!metaDataOld.operationInterface[oldOperationGroup]) {
return;
}
if (oldSdkType === SDKType.HighLevelClient && newSdkType === SDKType.ModularClient) {
const operationGroupFromOld = metaDataOld.operationInterface[oldOperationGroup] as InterfaceDeclaration;
const operationGroupFromNew = metaDataNew.operationInterface[newOperationGroup] as InterfaceDeclaration;
Expand Down
35 changes: 35 additions & 0 deletions tools/js-sdk-release-tools/src/test/changelogGenerator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,38 @@ test("Modular -> Modular: Change Op", async () => {
"Removed operation DataProductsCatalogsOperations.listByResourceGroup"
);
});

test("HLC -> HLC: Operation Group Add/Remove/ChangeSig", async () => {
const oldViewPath = path.join(
__dirname,
"testCases/operationGroups.4.old.hlc.api.md"
);
const newViewPath = path.join(
__dirname,
"testCases/operationGroups.4.new.hlc.api.md"
);
const changelog = await extractExportAndGenerateChangelog(
oldViewPath,
newViewPath,
SDKType.HighLevelClient,
wanlwanl marked this conversation as resolved.
Show resolved Hide resolved
SDKType.HighLevelClient
);

expect(changelog.addedOperationGroup.length).toBe(1);
expect(changelog.removedOperationGroup.length).toBe(1);

expect(changelog.addedOperation.length).toBe(0);
expect(changelog.removedOperation.length).toBe(0);

expect(changelog.operationSignatureChange.length).toBe(1);

expect(changelog.addedOperationGroup[0]).toBe(
"Added operation group DataProductsCatalogs_add"
);
expect(changelog.removedOperationGroup[0]).toBe(
"Removed operation group DataProductsCatalogs_remove"
);
expect(changelog.operationSignatureChange[0]).toBe(
"Operation DataProductsCatalogs_sig_change.get has a new signature"
);
});
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
// @public (undocumented)
export interface DataProductsCatalogsOperations {
// (undocumented)
get: (subscriptionId: string, resourceGroupName: string, options?: DataProductsCatalogsGetOptionalParams) => Promise<DataProductsCatalog>;
// @public
export interface DataProductsCatalogs_add {
get(resourceGroupName: string, options?: DataProductsCatalogsGetOptionalParams): Promise<DataProductsCatalogsGetResponse>;
}

export interface DataProductsCatalogs_sig_change {
get(resourceGroupName: int, options?: DataProductsCatalogsGetOptionalParams): Promise<DataProductsCatalogsGetResponse>;
}
// (No @packageDocumentation comment for this package)
```
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@

```ts
// @public
export interface DataProductsCatalogs {
export interface DataProductsCatalogs_remove {
get(resourceGroupName: string, options?: DataProductsCatalogsGetOptionalParams): Promise<DataProductsCatalogsGetResponse>;
}

export interface DataProductsCatalogs_sig_change {
get(resourceGroupName: string, options?: DataProductsCatalogsGetOptionalParams): Promise<DataProductsCatalogsGetResponse>;
}
// (No @packageDocumentation comment for this package)
```