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.