ADD, INCREASE, DECREASE, REMOVE 같은 action으로 장바구니 상태 변화를 한곳에 모읍니다.
cart state
장바구니 상태 전이
상품 추가, 수량 변경, 삭제, 총액 계산을 reducer 규칙과 Context 전달로 나누면 장바구니 흐름을 안정적으로 검증할 수 있습니다.
items와 dispatch 또는 액션 함수를 필요한 컴포넌트까지 전달합니다.
상품 목록, 장바구니 목록, 총액 표시가 같은 상태를 기준으로 맞게 갱신되는지 확인합니다.
같은 상품 추가 시 수량 증가와 새 항목 추가를 구분한다.
수량이 0 이하로 내려가지 않도록 처리한다.
총액이 items 배열에서 계산되어 표시되는지 본다.
장바구니를 쓰는 컴포넌트가 Provider 안에 있는지 확인한다.