mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-23 17:52:49 +00:00
* fix(app): scroll the Add Project results to the keyboard-selected row The results list had no scroll ref, so ArrowUp/ArrowDown moved the selection off-screen; the autocomplete reveal math is now shared through useRevealActiveItem. * test(app): verify the directory selected beyond the results viewport Check scrolling in both directions and across wrapping, then confirm Enter opens the selected directory. The previous regression used an aria-selected attribute that result buttons do not render. Co-authored-by: superheher <heh@vivaldi.net> * test(app): verify scroll reveal through browser behavior Keep pure offset checks and cover keyboard navigation, wrapping, and replacing search results in the real Add Project flow. * fix(app): measure retained Add Project rows when revealing selection * fix(app): measure scroll content through a native View reference --------- Co-authored-by: superheher <heh@vivaldi.net> Co-authored-by: paseo-bot[bot] <266920839+paseo-bot[bot]@users.noreply.github.com>
27 lines
949 B
TypeScript
27 lines
949 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { getAutocompleteFallbackIndex, orderAutocompleteOptions } from "./autocomplete-utils";
|
|
|
|
const OPTIONS = ["alpha", "beta", "gamma"];
|
|
|
|
describe("orderAutocompleteOptions", () => {
|
|
it("keeps first logical option closest to the input by default", () => {
|
|
expect(orderAutocompleteOptions(OPTIONS)).toEqual(["gamma", "beta", "alpha"]);
|
|
});
|
|
|
|
it("keeps normal top-down order when below-input is selected", () => {
|
|
expect(orderAutocompleteOptions(OPTIONS, "below-input")).toEqual(["alpha", "beta", "gamma"]);
|
|
});
|
|
});
|
|
|
|
describe("getAutocompleteFallbackIndex", () => {
|
|
it("picks the option nearest the input by default", () => {
|
|
expect(getAutocompleteFallbackIndex(3)).toBe(2);
|
|
expect(getAutocompleteFallbackIndex(0)).toBe(-1);
|
|
});
|
|
|
|
it("picks top item when below-input ordering is used", () => {
|
|
expect(getAutocompleteFallbackIndex(3, "below-input")).toBe(0);
|
|
});
|
|
});
|