user-event / options

Testing Library의 짝꿍 user-event 이해하기 - options편
Nov 30, 2023
user-event / options
user-event API의 동작을 조정할 수 있는 옵션은 다음과 같다. 옵션은 setup() 별로 적용할 수 있다.

advanceTimers

가짜 타이머를 사용한다면, 내부적으로 후속 코드를 지연시킬 때 해당 타이머를 진행시켜야 한다.
(delay: number) => Promise<void> | void
default() => Promise.resolve()
 
🔍
가짜 타이머란?
가짜 타이머는 주로 테스트 환경에서 사용되며, 시간에 의존하는 코드를 테스트할 때 유용하다. 이는 JavaScript의 내장 타이머 함수들, 예를 들어 setTimeoutsetIntervalDate 등을 "가짜" 버전으로 대체한다.
가짜 타이머를 사용하면, 테스트 코드에서 시간의 흐름을 제어할 수 있다. 예를 들어, setTimeout을 사용하는 코드를 테스트할 때, 실제로 시간을 기다리지 않고도 setTimeout의 콜백이 즉시 실행되는 것처럼 시뮬레이션할 수 있다.
Jest 테스트 프레임워크는 이러한 가짜 타이머 기능을 제공하며, jest.useFakeTimers()를 호출하여 사용할 수 있다.

applyAccept

upload()를 사용할 때 요소에 해당 속성이 있는 경우 accept 속성과 일치하지 않는 파일을 자동으로 삭제한다.
defaulttrue

delay

일련의 문자를 입력하는 것과 같은 일부 후속 입력 사이에 코드 실행이 setTimeout당 (최소) delay 밀리초만큼 지연된다.
그러면 최소한 다음 매크로 작업으로 다음 변경 사항이 이동되고 이벤트 간에 다른 (비동기) 코드가 실행될 수 있다.
null을 사용하면 setTimeout이 호출되지 않는다.
default0

document

setup 없이 요소와 함께 API를 직접 호출하면 요소의 소유자 document가 기본값으로 설정된다. 그렇지 않으면 대안으로 글로벌 documnet가 설정된다.
defaultelement.ownerDocument ?? globalThis.document

keyboardMap

키보드 장치를 구성하는 키보드 키의 배열.
이를 통해 다양한 레이아웃/지역화를 연결할 수 있다.

pointerEventsCheck

포인터 API는 요소가 pointer-events: none 을 갖고 있거나 상속했는지를 검사하는 것을 포함한다. 이 검사는 기본 적으로 무거운 작업이며, 노드 트리가 깊을수록 더 무거운 작업이된다.
이 옵션은 포인터 API가 검사를 수행하는 빈도를 결정한다.
  • PointerEventsCheckLevel.Never: 포인터 이벤트를 검사하지 않음
  • PointerEventsCheckLevel.EachTarget: 각 이벤트 타겟당 한 번
  • PointerEventsCheckLevel.EachApiCall: API마다 각 이벤트 타겟당 한 번
  • PointerEventsCheckLevel.EachTrigger: 다양한 이벤트를 트리거하는 모든 사용자 상호작용에 대해 포인터 이벤트 검사.
defaultPointerEventsCheckLevel.EachApiCall

pointerMap

이용 가능한 포인터 키의 배열.
이 옵션으로 다양한 포인터 장치와 연결할 수 있다.

skipAutoClose

type() 은 호출이 끝날 때 눌려진 키가 모두 자동으로 해제된다. 이 옵션을 사용하면 이 기능을 끌 수 있다.
default: false

skipClick

type() 는 암묵적 으로 요소를 클릭 한다.
이 옵션을 사용하여 이 기능을 끌 수 있다.
default: false

skipHover

click() 은 암묵적 으로 먼저 커서를 타겟 요소로 이동시킨다.
이 옵션을 사용하여 이 기능을 끌 수 있다.
default: false

writeToClipboard

cut 이나 copy가 트리거되면 선택된 데이터를 클립보드 API에 작성한다. 클립보드 API는 보통 테스트 코드에서 사용이 불가능 하다. setup() 은 navigator.clipboard 속성을 stub로 대체해 클립보드 API 사용이 가능하다.
API를 직접호출한 경우 기본값: false
setup() 인스턴스에서 API를 호출한 경우 기본값: true
Share article

제련소