1
0
forked from baron/baron-sso
Files
baron-sso/docs/trouble-shooting/issue-269-test-scenarios.md

2.0 KiB

Issue #269 테스트 시나리오

목적

/{locale}/ 라우팅 도입 이후 query parameter 유실 회귀를 방지합니다.

범위

  • UserFront locale 경로 보정 (buildLocalizedPath)
  • 비로그인 redirect 경로 생성 (buildSigninRedirectPath)
  • locale 지원 목록 동기화 (assets/translations/*.toml -> LocaleRegistry)

테스트 시나리오

S1. locale 보정 시 기본 query 보존

  • 입력: /signin?redirect_uri=https://example.com
  • 기대: /ko/signin?redirect_uri=https://example.com

S2. locale 보정 시 raw query 순서/중복 key 보존

  • 입력: /signin?a=1&a=2&redirect_uri=https%3A%2F%2Fexample.com%2Fcb%3Fx%3D1%26y%3D2
  • 기대: /ko/signin?a=1&a=2&redirect_uri=https%3A%2F%2Fexample.com%2Fcb%3Fx%3D1%26y%3D2

S3. locale 보정 시 fragment 보존

  • 입력: /signin?notice=qr_login_required#auth
  • 기대: /ko/signin?notice=qr_login_required#auth

S4. unknown 2-letter prefix 오인 제거

  • 입력: /zz/signin
  • 기대: /ko/zz/signin

S5. 비로그인 redirect에서 query 없음

  • 입력: locale=ko, uri=/ko/profile
  • 기대: /ko/signin

S6. 비로그인 redirect에서 query 전체 보존

  • 입력: locale=ko, uri=/ko/profile?a=1&a=2&redirect_uri=https%3A%2F%2Fexample.com%2Fcb%3Fx%3D1%26y%3D2&notice=qr_login_required
  • 기대: /ko/signin?a=1&a=2&redirect_uri=https%3A%2F%2Fexample.com%2Fcb%3Fx%3D1%26y%3D2&notice=qr_login_required

S7. locale 목록 하드코딩 제거 검증

  • 입력: asset 목록 (assets/translations/en.toml, assets/translations/ko.toml, assets/translations/template.toml, 기타 invalid 파일)
  • 기대:
    • template.toml 제외
    • 유효 locale 파일(en.toml, ko.toml)만 지원 목록에 반영

실행 방법

cd userfront
flutter test test/locale_utils_test.dart
flutter test test/locale_registry_test.dart

자동화 매핑

  • userfront/test/locale_utils_test.dart
    • S1~S6 전부 커버
  • userfront/test/locale_registry_test.dart
    • S7 커버