mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-08-31 02:08:58 +00:00
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import {
|
|
clampMailSwipeOffset,
|
|
MAIL_SWIPE_ACTION_WIDTH,
|
|
resolveMailSwipeAction,
|
|
resolveMailSwipeAxis,
|
|
} from '@/utils/mailSwipe'
|
|
|
|
describe('mail swipe gestures', () => {
|
|
it('waits for a clear horizontal or vertical direction', () => {
|
|
expect(resolveMailSwipeAxis(5, 2)).toBeNull()
|
|
expect(resolveMailSwipeAxis(24, 5)).toBe('horizontal')
|
|
expect(resolveMailSwipeAxis(10, 18)).toBe('vertical')
|
|
})
|
|
|
|
it('limits horizontal movement and blocks unavailable directions', () => {
|
|
expect(clampMailSwipeOffset(70, true, true)).toBe(70)
|
|
expect(clampMailSwipeOffset(70, false, true)).toBe(0)
|
|
expect(clampMailSwipeOffset(-70, true, false)).toBe(0)
|
|
expect(clampMailSwipeOffset(-240, true, true)).toBeGreaterThan(
|
|
-MAIL_SWIPE_ACTION_WIDTH - 19,
|
|
)
|
|
})
|
|
|
|
it('only commits an action after crossing its threshold', () => {
|
|
expect(resolveMailSwipeAction(63, true, true)).toBeNull()
|
|
expect(resolveMailSwipeAction(64, true, true)).toBe('read')
|
|
expect(resolveMailSwipeAction(-64, true, true)).toBe('delete')
|
|
expect(resolveMailSwipeAction(80, false, true)).toBeNull()
|
|
})
|
|
})
|