Fix: Remove duplicate database refresh logic (Fabric). Add logging for collection fetching. (#2426)

* Remove duplicate database refresh logic. Add logging for collection fetching

* fix: Fix unit test

* fix: Update snapshots to include databasesRefreshed property

---------

Co-authored-by: Laurent Nguyen <languye@microsoft.com>
This commit is contained in:
Laurent Nguyen
2026-03-16 14:24:27 +01:00
committed by GitHub
parent c5d1f4f06f
commit 7a93df6a4b
7 changed files with 30 additions and 5 deletions

View File

@@ -107,6 +107,12 @@ export default class Explorer {
private static readonly MaxNbDatabasesToAutoExpand = 5;
public phoenixClient: PhoenixClient;
/**
* Resolves when the initial refreshAllDatabases (including collection loading) completes.
* Await this instead of calling refreshAllDatabases again to avoid duplicate concurrent loads.
*/
public databasesRefreshed: Promise<void> = Promise.resolve();
constructor() {
const startKey: number = TelemetryProcessor.traceStart(Action.InitializeDataExplorer, {
dataExplorerArea: Constants.Areas.ResourceTree,
@@ -1197,9 +1203,11 @@ export default class Explorer {
}
if (userContext.apiType !== "Postgres" && userContext.apiType !== "VCoreMongo") {
userContext.authType === AuthType.ResourceToken
? this.refreshDatabaseForResourceToken()
: await this.refreshAllDatabases(); // await: we rely on the databases to be loaded before restoring the tabs further in the flow
this.databasesRefreshed =
userContext.authType === AuthType.ResourceToken
? this.refreshDatabaseForResourceToken()
: this.refreshAllDatabases();
await this.databasesRefreshed; // await: we rely on the databases to be loaded before restoring the tabs further in the flow
}
if (!isFabricNative()) {