From 7c0c8536e6b51af9088bc928ac26e9ae73209c29 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Tue, 22 Apr 2025 00:49:52 +0000 Subject: [PATCH] fix: Fix broken FocusManager tree unregistration. --- core/focus_manager.ts | 2 +- tests/mocha/focus_manager_test.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/core/focus_manager.ts b/core/focus_manager.ts index 230bdf030..c6d40fa0d 100644 --- a/core/focus_manager.ts +++ b/core/focus_manager.ts @@ -148,7 +148,7 @@ export class FocusManager { if (!this.isRegistered(tree)) { throw Error(`Attempted to unregister not registered tree: ${tree}.`); } - const treeIndex = this.registeredTrees.findIndex((tree) => tree === tree); + const treeIndex = this.registeredTrees.findIndex((reg) => reg === tree); this.registeredTrees.splice(treeIndex, 1); const focusedNode = FocusableTreeTraverser.findFocusedNode(tree); diff --git a/tests/mocha/focus_manager_test.js b/tests/mocha/focus_manager_test.js index 70ef210c5..69ecfe722 100644 --- a/tests/mocha/focus_manager_test.js +++ b/tests/mocha/focus_manager_test.js @@ -305,6 +305,18 @@ suite('FocusManager', function () { assert.isTrue(isRegistered); }); + + test('for unregistered tree with other registered tree returns false', function () { + this.focusManager.registerTree(this.testFocusableTree2); + this.focusManager.registerTree(this.testFocusableTree1); + this.focusManager.unregisterTree(this.testFocusableTree1); + + const isRegistered = this.focusManager.isRegistered( + this.testFocusableTree1, + ); + + assert.isFalse(isRegistered); + }); }); suite('getFocusedTree()', function () {