/week7-assignment-1

코드숨 리액트 로그인 및 리뷰작성 과제

Primary LanguageJavaScript

레스토랑 로그인 페이지 및 리뷰 작성 페이지 구현하기

지역, 분류 그리고 레스토랑 목록은 로그인을 하지 않아도 조회할 수 있었습니다. 하지만 리뷰 작성은 누가 리뷰를 작성했는지 알아야 하기 때문에 로그인한 사용자만 할 수 있습니다. 로그인 페이지를 구현하고 로그인을 했을 때 리뷰를 작성할 수 있도록 기능을 만들어주세요.

과제 목표

  • TDD로 기능 구현
  • 커버리지 100% 달성
  • 로그인 페이지 구현
  • 로그인 구현
  • 리뷰 작성하기 구현
  • 리뷰 목록 조회하기 구현

모든 컴포넌트와 reducer에 테스트를 작성해주세요. 그리고 테스트 커버리지를 100%를 달성해주세요.

요구 사항

  • ESLint를 돌린 결과 아무런 문제가 없어야 합니다.
  • 모든 인수 테스트를 통과시켜야 합니다.
  • 한 파일에는 하나의 컴포넌트만 있어야 합니다.
  • 테스트 커버리지 100%를 달성해야 합니다.

제한 조건

  • 모든 기능은 TDD로 구현합니다. 컴포넌트와 reducer에 대한 테스트가 존재해야 합니다. 먼저 테스트를 추가하고 commit 한 뒤 실제 기능을 추가하고 commit합니다. commit 메시지 로그는 아래와 같이 남아야 합니다.

Restaurant에 대한 테스트를 추가한다

Restaurant을 구현한다

Restaurant를 리팩토링한다

...

  • if는 사용할 수 있어도 else 사용하실 수 없습니다. GuardClauses 방법을 사용해주세요.
  • switch는 사용하실 수 없습니다.
  • let은 사용하실 수 없습니다. const만을 사용하여 문제를 해결해주세요.
  • 함수 이름과 변수 이름에 줄임말은 사용하실 수 없습니다. 길더라도 명확하게 써주세요.
  • indent(인덴트, 들여쓰기) depth를 1로 유지해주세요. 예를 들어, for문 안에 if문이 있으면 indent depth는 2입니다. depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 됩니다.

설치하기

npm install

실행하기

npm start

자동으로 브라우저가 켜지지는 않으니 브라우저에 http://localhost:8080을 입력하여 접속해 주세요.

만약 현재 컴퓨터에서 이미 8080이라는 포트를 사용하고 있다면 8081으로 실행이 될 수도 있어요. 만약 8081도 사용하고 있으면 8082, 8083 ... 순서대로 찾아서 만들어집니다.

린트 실행하기

npm run lint

테스트 실행하기

전체 테스트 실행하기

npm test

유닛 테스트 실행하기

npm run test:unit

# 파일이 저장됐을 때 자동으로 테스트 실행하기
npm run test:unit -- --watch-all

# 커버리지 출력하기
npm run coverage

e2e 테스트 실행하기

서버가 실행중인 상태에서 테스트를 실행해야 합니다.

npm run test:e2e