Skip to content

test(e2e): basic/threshold 케이스 보강 (샘플) - #959

Open
cjw783 wants to merge 1 commit into
test/e2e-casefrom
test/e2e-basic-threshold
Open

test(e2e): basic/threshold 케이스 보강 (샘플)#959
cjw783 wants to merge 1 commit into
test/e2e-casefrom
test/e2e-basic-threshold

Conversation

@cjw783

@cjw783 cjw783 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

E2E 케이스 채우기 프로그램의 샘플 PR입니다. 케이스 하나를 맡았을 때 무엇을 어느 정도로 바꾸면 되는지 보여주기 위한 레퍼런스이므로 머지하지 않고 열어 둡니다.
규칙·절차 → dev-guide/E2E_CASE_PROGRAM.md

무엇을 바꿨나

  • 바뀐 파일은 threshold.yaml, threshold.spec.ts 둘뿐 — 데모(packages/docs/src/demo/)는 건드리지 않음
  • 케이스 하나의 분량은 이 정도를 기준으로 잡으면 됨

스펙 변경

  • 기존 focus는 "3개 인스턴스가 렌더링됨 / 옵션이 설정됨" 위주 → 관찰 가능한 동작 5개로 재작성
  • threshold 미만·이상 드래그의 결과를 각각 명시
  • 임계값 경계(±10px)가 드래그 속도에 좌우되는 점을 limitations에 기록

테스트 추가

  • 프레임워크당 3 → 5개
  • threshold 미만 드래그 시 원래 패널로 복귀하고 애니메이션이 종료됨을 검증
  • 같은 50px 드래그에서 threshold 10/40은 이동, 100은 미이동임을 한 번에 단언 — 옵션이 만드는 차이를 직접 비교
  • 복귀 후 재드래그가 정상 동작하는지 검증
  • expect(state.currentIndex).toBeGreaterThan(0) 를 기대 인덱스 고정(toBe(1))으로 교체
  • 인스턴스 인덱스(LOW/DEFAULT/HIGH)와 드래그 거리를 명명 상수로 분리
  • test() 위에 대응하는 focus를 주석으로 표기

데모 변경

  • 없음. 기존 데모가 10/40/100 세 인스턴스를 이미 비교 가능한 형태로 제공함

검증 불가 항목

  • 임계값 경계 근처의 판정. SnapControl.moveToPosition은 raw 드래그 거리가 아니라 릴리스 시점의 관성이 실린 delta를 threshold와 비교하므로, 경계값 단언은 드래그 속도에 따라 흔들림. 여유를 둔 거리(50px / 150px)로만 검증함

Test plan

  • focus 항목과 test() 블록이 1:1로 매핑되고 focus 주석이 있음
  • 3 프레임워크(vanilla/react/vue) 모두 통과 — 15 tests
  • npx playwright test tests/basic/threshold --repeat-each=3 연속 통과 — 45 tests
  • pnpm test:e2e 전체 통과 — 459 tests / 49.3s (기존 453 + 6)

### 스펙
- focus를 옵션 값 확인 나열에서 관찰 가능한 동작 5개로 재작성
- 임계값 경계가 드래그 속도에 좌우되는 점을 `limitations`에 기록

### 테스트
- 테스트 3 → 5개 (프레임워크당)
- threshold 미만 드래그 시 원래 패널로 복귀하고 애니메이션이 종료됨을 검증
- 같은 50px 드래그에서 threshold 10/40은 이동, 100은 미이동임을 한 번에 단언
- 복귀 후 재드래그가 정상 동작하는지 검증 추가
- `toBeGreaterThan(0)` 느슨한 단언을 기대 인덱스 고정으로 교체
- 인스턴스 인덱스와 드래그 거리를 명명 상수로 분리

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants