Skip to content

screenshotTest 소스셋 부재 — 스크롤 없는 화면 9개 baseline + 360×800dp 변형 #1130

Closed

Description

@OnlyReadOneBook

현황

feature/setting 과 feature/timeletter 에는 screenshotTest 소스셋이 없다. 시각 회귀 baseline 을 가진 모듈은 core/ui(24) · feature/afternote(19) · feature/receiver(22) · feature/onboarding(10) · feature/home(2) 뿐이다.

동시에 이 두 모듈에는 verticalScroll / LazyColumn / Pager 가 전혀 없는 화면이 9개 있다.

모듈 화면 기존 @Preview
setting AppLockSetupScreen 3
setting PushNotificationScreen 2
setting PassKeyScreen 1
setting PassKeyPasswordScreen 1
setting PassKeyMakingScreen 1
setting ConnectedAccountsScreen 1
setting WithdrawConfirmScreen 0
setting ReceiverEditScreen 0
timeletter TimeletterScreen 3

왜 다루는가

앱 전체에 고정 dp 리터럴이 1566개(그중 width/height/size 고정 508개)인데 반응형 API 사용은 2파일뿐이다. 스크롤이 없는 화면은 세로 공간이 모자라면 그대로 잘린다.

그런데 지금까지 실기 QA 는 전부 한 기기(1080×2400 @420dpi)에서만 돌았고, 그 에뮬레이터는 override 때문에 실효 446×967dp — 국내 보급형(360×800dp)보다 폭 24%·높이 21% 넓은, 잘림이 구조적으로 안 잡히는 화면이었다(#1129 에서 정비).

screenshotTest 가 있는 모듈은 CI 가 좁은 화면 회귀를 대신 잡아 줄 수 있다(#1128 에서 onboarding·receiver 9개 화면에 360×800dp 변형 추가). 이 두 모듈은 인프라가 없어 그 방법을 쓸 수 없다.

무엇을 한다

  1. feature/setting/presentation · feature/timeletter/presentation 에 screenshotTest 소스셋 추가 — 다른 모듈과 동일하게 build.gradle.kts 에 screenshotTestImplementation(libs.screenshot.validation.api) + screenshotTestImplementation(libs.androidx.compose.ui.tooling).
  2. 위 9개 화면의 baseline 작성. 기본 크기 + 360×800dp(device = "spec:width=360dp,height=800dp,dpi=320") 변형.
  3. baseline 생성은 screenshot-baseline 절차(docker amd64)를 따른다 — 로컬(macOS/arm64) 렌더는 폰트 AA·아키텍처 차이로 CI 와 픽셀이 달라진다.

참고 구현: feature/receiver/presentation/src/screenshotTest/kotlin/.../SenderDetailScreenScreenshotTest.kt

참고

WithdrawConfirmScreen 과 ReceiverEditScreen 은 @Preview 자체가 없어 프리뷰부터 필요하다.

Activity

  1. changed the title [-]test(setting·timeletter): screenshotTest 소스셋 부재 — 스크롤 없는 화면 9개 baseline + 360×800dp 변형[/-] [+]screenshotTest 소스셋 부재 — 스크롤 없는 화면 9개 baseline + 360×800dp 변형[/+] on Aug 28, 2026
  2. added
    test테스트·검증·회귀 방지 작업
    and removed on Aug 28, 2026
  3. OnlyReadOneBook commented on Aug 28, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    테스트와 production 변경의 소유 경계를 모듈별로 분리했습니다.

    PR #1338의 src/main 리팩터링은 위 production 이슈 범위로 옮기고, 이 테스트 이슈에서는 production 화면 코드를 수정하지 않는 기준으로 정리합니다.

  4. added 2 commits that reference this issue on Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:setting설정 기능 영역area:timeletter타임레터 기능 영역test테스트·검증·회귀 방지 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions