diff --git a/extensions/ql-vscode/src/data-extensions-editor/model-details/model-details-data-provider.ts b/extensions/ql-vscode/src/data-extensions-editor/model-details/model-details-data-provider.ts index df47c5b42..c7c12fcea 100644 --- a/extensions/ql-vscode/src/data-extensions-editor/model-details/model-details-data-provider.ts +++ b/extensions/ql-vscode/src/data-extensions-editor/model-details/model-details-data-provider.ts @@ -58,11 +58,15 @@ export class ModelDetailsDataProvider this.databaseItem = databaseItem; this.sourceLocationPrefix = await this.databaseItem.getSourceLocationPrefix(this.cliServer); + this.onDidChangeTreeDataEmitter.fire(); } - if (hideModeledApis !== undefined) { + if ( + hideModeledApis !== undefined && + hideModeledApis !== this.hideModeledApis + ) { this.hideModeledApis = hideModeledApis; + this.onDidChangeTreeDataEmitter.fire(); } - this.onDidChangeTreeDataEmitter.fire(); } getTreeItem(item: ModelDetailsTreeViewItem): TreeItem { diff --git a/extensions/ql-vscode/test/vscode-tests/no-workspace/data-extensions-editor/model-details/model-details-data-provider.test.ts b/extensions/ql-vscode/test/vscode-tests/no-workspace/data-extensions-editor/model-details/model-details-data-provider.test.ts index 913c489ae..ea8d1869f 100644 --- a/extensions/ql-vscode/test/vscode-tests/no-workspace/data-extensions-editor/model-details/model-details-data-provider.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/no-workspace/data-extensions-editor/model-details/model-details-data-provider.test.ts @@ -62,5 +62,19 @@ describe("ModelDetailsDataProvider", () => { expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1); }); + + it("should emit onDidChangeTreeData event when hideModeledApis has changed", async () => { + const hideModeledApis = false; + + const dataProvider = new ModelDetailsDataProvider(mockCliServer); + await dataProvider.setState(undefined, undefined, hideModeledApis); + + const onDidChangeTreeDataListener = jest.fn(); + dataProvider.onDidChangeTreeData(onDidChangeTreeDataListener); + + await dataProvider.setState(undefined, undefined, !hideModeledApis); + + expect(onDidChangeTreeDataListener).toHaveBeenCalledTimes(1); + }); }); });