- 마우스 · 트랙패드 판정 지움 — 확대율 100 % 아닌 화면에서 휠이 팬으로 먹히던 것 - 트랙패드 두 손가락 팬 없어짐 · 팬 = 가운데 단추 끌기 - vitest input-wheel.test.ts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TNMXVCZXMpHpVvqmFkeChL
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import {
|
|
PINCH_ZOOM_EXPONENT,
|
|
WHEEL_LINE_PX,
|
|
WHEEL_PAGE_PX,
|
|
WHEEL_ZOOM_EXPONENT,
|
|
} from '../App.consts.ts';
|
|
import { wheelZoom } from './input-wheel.ts';
|
|
|
|
const wheel = (deltaY: number, deltaMode = 0, ctrlKey = false) =>
|
|
wheelZoom({ deltaY, deltaMode, ctrlKey });
|
|
|
|
describe('CAD 휠 = 늘 줌(153-3)', () => {
|
|
it('100 · 120 배수가 아닌 델타(확대율 90 % · 110 % · 트랙패드 잔 델타)도 줌', () => {
|
|
for (const deltaY of [100, 120, 111.1, 90.9, 4, -100, -111.1, -4]) {
|
|
expect(wheel(deltaY)).toEqual({ delta: -deltaY, exponent: WHEEL_ZOOM_EXPONENT });
|
|
}
|
|
});
|
|
|
|
it('줄 · 쪽 단위는 픽셀로 환산', () => {
|
|
expect(wheel(3, 1)).toEqual({ delta: -3 * WHEEL_LINE_PX, exponent: WHEEL_ZOOM_EXPONENT });
|
|
expect(wheel(-1, 2)).toEqual({ delta: WHEEL_PAGE_PX, exponent: WHEEL_ZOOM_EXPONENT });
|
|
});
|
|
|
|
it('ctrl+휠(핀치)은 핀치 지수', () => {
|
|
expect(wheel(-7, 0, true)).toEqual({ delta: 7, exponent: PINCH_ZOOM_EXPONENT });
|
|
});
|
|
|
|
it('델타 0 은 안 움직임', () => {
|
|
expect(wheel(0)).toBeNull();
|
|
expect(wheel(0, 0, true)).toBeNull();
|
|
});
|
|
});
|