fix: keep assistant menu selection visible
This commit is contained in:
1 parent
1d15b614f3
commit
bf53a2a262
4 files changed
+110
-3
No files matched your search
@@ -0,0 +1,53 @@
|
||||
import { describe, expect, test } from "vitest";
|
||||
|
||||
import { getNearestTriggerScrollTop } from "./assistant-trigger-scroll";
|
||||
|
||||
describe("getNearestTriggerScrollTop", () => {
|
||||
test("keeps a fully visible highlighted item in place", () => {
|
||||
expect(
|
||||
getNearestTriggerScrollTop({
|
||||
scrollTop: 120,
|
||||
viewportTop: 100,
|
||||
viewportBottom: 400,
|
||||
itemTop: 180,
|
||||
itemBottom: 228,
|
||||
}),
|
||||
).toBe(120);
|
||||
});
|
||||
|
||||
test("scrolls down only enough to reveal the highlighted item", () => {
|
||||
expect(
|
||||
getNearestTriggerScrollTop({
|
||||
scrollTop: 120,
|
||||
viewportTop: 100,
|
||||
viewportBottom: 400,
|
||||
itemTop: 388,
|
||||
itemBottom: 436,
|
||||
}),
|
||||
).toBe(156);
|
||||
});
|
||||
|
||||
test("scrolls up only enough to reveal the highlighted item", () => {
|
||||
expect(
|
||||
getNearestTriggerScrollTop({
|
||||
scrollTop: 120,
|
||||
viewportTop: 100,
|
||||
viewportBottom: 400,
|
||||
itemTop: 72,
|
||||
itemBottom: 120,
|
||||
}),
|
||||
).toBe(92);
|
||||
});
|
||||
|
||||
test("clamps upward scrolling at the start of the list", () => {
|
||||
expect(
|
||||
getNearestTriggerScrollTop({
|
||||
scrollTop: 12,
|
||||
viewportTop: 100,
|
||||
viewportBottom: 400,
|
||||
itemTop: 40,
|
||||
itemBottom: 88,
|
||||
}),
|
||||
).toBe(0);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user