diff --git a/src/lib/menuNavigation.ts b/src/lib/menuNavigation.ts index 0f6f0dc13..c1f277389 100644 --- a/src/lib/menuNavigation.ts +++ b/src/lib/menuNavigation.ts @@ -8,7 +8,7 @@ export function menuFocusIndex( case "ArrowDown": return wrap(current + 1); case "ArrowUp": - return wrap(current - 1); + return current === -1 ? count - 1 : wrap(current - 1); case "Home": return 0; case "End": diff --git a/tests/unit/menuNavigation.test.ts b/tests/unit/menuNavigation.test.ts index 93ba96d12..106450d2d 100644 --- a/tests/unit/menuNavigation.test.ts +++ b/tests/unit/menuNavigation.test.ts @@ -6,6 +6,7 @@ test.each([ ["ArrowDown", -1, 0], ["ArrowDown", 0, 1], ["ArrowDown", 2, 0], + ["ArrowUp", -1, 2], ["ArrowUp", 0, 2], ["ArrowUp", 2, 1], ["Home", 1, 0],