Also remove IsolatedFileSystemManager instance during cleanup, to avoid
interference between unit tests through the fileSystemsLoadedPromise

Bug: 1376495
Change-Id: I24daba7092cc2fd3e2d64b2c1805b2017a195b27
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3966432
Reviewed-by: Wolfgang Beyer <wolfi@chromium.org>
Commit-Queue: Wolfgang Beyer <wolfi@chromium.org>
Auto-Submit: Danil Somsikov <dsv@chromium.org>
Commit-Queue: Danil Somsikov <dsv@chromium.org>
diff --git a/front_end/models/persistence/IsolatedFileSystemManager.ts b/front_end/models/persistence/IsolatedFileSystemManager.ts
index b18fb6a..f1a7987 100644
--- a/front_end/models/persistence/IsolatedFileSystemManager.ts
+++ b/front_end/models/persistence/IsolatedFileSystemManager.ts
@@ -47,7 +47,7 @@
 };
 const str_ = i18n.i18n.registerUIStrings('models/persistence/IsolatedFileSystemManager.ts', UIStrings);
 const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
-let isolatedFileSystemManagerInstance: IsolatedFileSystemManager;
+let isolatedFileSystemManagerInstance: IsolatedFileSystemManager|null;
 
 export class IsolatedFileSystemManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
   private readonly fileSystemsInternal: Map<Platform.DevToolsPath.UrlString, PlatformFileSystem>;
@@ -129,6 +129,10 @@
     return isolatedFileSystemManagerInstance;
   }
 
+  static removeInstance(): void {
+    isolatedFileSystemManagerInstance = null;
+  }
+
   private requestFileSystems(): Promise<IsolatedFileSystem[]> {
     let fulfill: (arg0: IsolatedFileSystem[]) => void;
     const promise = new Promise<IsolatedFileSystem[]>(f => {
diff --git a/test/unittests/front_end/helpers/EnvironmentHelpers.ts b/test/unittests/front_end/helpers/EnvironmentHelpers.ts
index c7f4dab..3296924 100644
--- a/test/unittests/front_end/helpers/EnvironmentHelpers.ts
+++ b/test/unittests/front_end/helpers/EnvironmentHelpers.ts
@@ -9,6 +9,7 @@
 import * as SDK from '../../../../front_end/core/sdk/sdk.js';
 import type * as Protocol from '../../../../front_end/generated/protocol.js';
 import * as Bindings from '../../../../front_end/models/bindings/bindings.js';
+import * as Persistence from '../../../../front_end/models/persistence/persistence.js';
 import * as Workspace from '../../../../front_end/models/workspace/workspace.js';
 import * as IssuesManager from '../../../../front_end/models/issues_manager/issues_manager.js';
 
@@ -237,6 +238,8 @@
   Bindings.CSSWorkspaceBinding.CSSWorkspaceBinding.removeInstance();
   Bindings.ResourceMapping.ResourceMapping.removeInstance();
   IssuesManager.IssuesManager.IssuesManager.removeInstance();
+  Persistence.IsolatedFileSystemManager.IsolatedFileSystemManager.removeInstance();
+
   Common.Settings.resetSettings();
 
   // Protect against the dynamic import not having happened.