feat: improve task search reveal interaction
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import {
|
||||
clampSearchPullDistance,
|
||||
isSearchShortcut,
|
||||
isAtSearchPullOrigin,
|
||||
shouldHideSearchAfterSwipe,
|
||||
shouldRevealSearchAfterPull,
|
||||
} from './mobile-search'
|
||||
|
||||
describe('mobile task search gestures', () => {
|
||||
it('clamps downward pull distance without treating upward motion as pull', () => {
|
||||
expect(clampSearchPullDistance(-20)).toBe(0)
|
||||
expect(clampSearchPullDistance(24)).toBe(24)
|
||||
expect(clampSearchPullDistance(100)).toBe(72)
|
||||
})
|
||||
|
||||
it('reveals only after crossing the pull threshold', () => {
|
||||
expect(shouldRevealSearchAfterPull(55)).toBe(false)
|
||||
expect(shouldRevealSearchAfterPull(56)).toBe(true)
|
||||
})
|
||||
|
||||
it('requires every relevant scroll container to be at the top', () => {
|
||||
expect(isAtSearchPullOrigin(0, 0, 0)).toBe(true)
|
||||
expect(isAtSearchPullOrigin(0, 12, 0)).toBe(false)
|
||||
})
|
||||
|
||||
it('hides only after an upward swipe when the query is empty', () => {
|
||||
expect(shouldHideSearchAfterSwipe(-36, '')).toBe(true)
|
||||
expect(shouldHideSearchAfterSwipe(-35, '')).toBe(false)
|
||||
expect(shouldHideSearchAfterSwipe(-80, 'dodo')).toBe(false)
|
||||
})
|
||||
|
||||
it('recognizes command/control K without hijacking plain typing', () => {
|
||||
expect(isSearchShortcut({ key: 'k', metaKey: true, ctrlKey: false })).toBe(true)
|
||||
expect(isSearchShortcut({ key: 'K', metaKey: false, ctrlKey: true })).toBe(true)
|
||||
expect(isSearchShortcut({ key: 'k', metaKey: false, ctrlKey: false })).toBe(false)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user