Admin Products 통합 테스트 구현

ID: 64f974e2-1293-43f9-8b67-199acc5cf710

높음 완료

Admin Products 통합 테스트 작성

## 생성/수정할 파일
- test/integration/admin/products_test.rb: 새 파일 생성
- test/fixtures/products.yml: 기존 fixtures 확인 및 보완
- test/fixtures/product_prices.yml: 기존 fixtures 확인 및 보완

## 테스트 요구사항 (Minitest)

### 인증/권한 테스트
- 비로그인 사용자 접근 시 로그인 페이지로 리다이렉트
- 일반 사용자 접근 시 접근 거부
- admin 사용자만 접근 가능

### index 테스트
- 상품 목록 표시
- name 검색 (q 파라미터)
- product_type 필터
- active 필터
- 정렬 (sort/direction 파라미터)

### CRUD 테스트
- new: 새 상품 폼 렌더링
- create: 유효한 파라미터로 상품 생성
- create: 무효한 파라미터(slug 중복 등)로 실패
- show: 상품 상세 + product_prices 표시
- edit: 편집 폼 렌더링
- update: 상품 정보 수정
- update: product_prices 추가/수정/삭제

### toggle_active 테스트
- 활성 → 비활성 토글
- 비활성 → 활성 토글

## 테스트 패턴
- 기존 test/integration/admin/workspaces_test.rb 패턴 참고
- sign_in_as(users(:admin_user)) 사용
- assert_response, assert_redirected_to, assert_difference 활용
- fixtures 기반 테스트 데이터

## 완료 기준
- bin/rails test test/integration/admin/products_test.rb 통과
- 모든 CRUD + 필터 + 권한 테스트 커버

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: tester
생성일: 2026년 02월 28일 07:24

활동 로그

  • 팀리드 상태 변경: 리뷰 → 완료

    2026년 02월 28일 07:39:32

  • T
    tester 상태 변경: 할 일 → 리뷰

    2026년 02월 28일 07:38:52

  • T
    tester Admin Products 통합 테스트 구현 완료, 25개 테스트 전체 통과

    2026년 02월 28일 07:38:51

    상세 보기

    ## 작업 내용

    ### Fixtures 보완
    - `test/fixtures/products.yml`: `credit_pack_10` (크레딧팩, active), `inactive_product` (비활성 리포트) 추가
    - `test/fixtures/product_prices.yml`: `credit_pack_10_krw` 추가

    ### 통합 테스트 작성 (25개)
    파일: `test/integration/admin/products_test.rb`

    **인증/권한 (3개)**
    - 비인증 사용자 → session/new 리다이렉트
    - 일반 사용자 → root_path 리다이렉트
    - admin 사용자 → 접근 성공

    **Index (8개)**
    - 목록 표시, name 검색(q 파라미터)
    - product_type 필터 (report/credit_pack)
    - active 필터 (true/false)
    - 정렬 (name asc/created_at desc)
    - 복합 검색+필터

    **CRUD (8개)**
    - show: 상세 표시, product_prices 테이블
    - new: 폼 렌더링
    - create: 성공, slug 중복 실패, 필수값 누락 실패
    - edit: 폼 렌더링
    - update: 성공, 실패, nested product_prices

    **Toggle Active (2개)**
    - active → inactive
    - inactive → active

    ### 결과
    - 25 runs, 64 assertions, **0 failures, 0 errors**