기타
-
nextjs mocking (testing library, jest)기타 2021. 12. 1. 13:27
로그인페이지에서 로그인 완료시 혹은 로그인되어있는 상태라면 메인페이지로 이동하는 코드를 테스트 코드를 공부하면서 작성해봣다. nextjs 의 router push를 이용해서 redirection 해주고 있어서 mocking을 import { useRouter } from 'next/router'; jest.mock('next/rotuer'); const push = jest.fn(); (useRouter as jest.Mock).mockImplementation(() => ({ push, })); 위와 같이 해주고 expect(push).toBeCalledWith(1) 테스트가 통과를 하지 못하길래 컨솔을 찍어봐도 내가 원하는 곳까지 다 제대로 콘솔이 잘 찍히는데 왜 테스트가 안되는거지?? 이런 생각하다..
-
how to debug printing entire component in testing-library기타 2021. 11. 30. 10:55
테스트가 불이치가 되면 틀린부분 dom element를 확인할수 있다. 이부분이 도움이 되긴하는데 모든영역이 뜨지는 않는다. 또 안틀려도 보고싶을때가 있는데 그때 debug() 메서드가 있다. render 함수에서 꺼내쓰면 되는데 const { debug } = render( 컴포넌트); debug(); 를 실행해주면 해당테스트 렌더된 컴포넌트를 확인할수있다. 그리고 이게 debug()를 해도 element 가 충분히 안보여지는데 이는 default option이 7000자 로 되있어서 그렇다. DEBUG_PRINT_LIMIT=30000 yarn test 또는 debug(undefined, 30000); 이렇게 옵션수정할수 잇따.
-
[recoil] selector 비동기기타 2021. 6. 17. 14:22
recoil 에서 관리하고 있는 데이터를 이용하여 비동기요청을 넣어야 하는 경우 selector 내부에서 get을통해 요청용 데이터 받아와서 async 로 요청 (비동기작업) 진행한 이후 반환 해주면 selector 를 이용해 값을 받아 사용할수 있다 suspense 나 errorBoundary 로 랲핑 하면 내부에서 비동기 작업시 발생할수있는 에러나 로딩 처리를 해줄수 있다. const currentUserNameQuery = selector({ key: 'CurrentUserName', get: async ({get}) => { const response = await myDBQuery({ userID: get(currentUserIDState), }); if (response.error) { thr..
-
[recoil] 기본기타 2021. 6. 17. 11:34
atom : key : 어떤 데이터 default : 기본값 : 관리할 대상 생성 >>> 값을 변경하려면 setter 함수에 접근해야한다. ,접근은 getter 함수 느낌 useRecoilValue : 값 불러오기 >> atom 의 getter 함수라고 생각하면된다. useSetRecoilState : 값 변경하기 >> atom 의 setter 함수라고 생각하면 된다. >> 데이터는 immutable 하게 관리한다. >> 기존의 데이터를 변경하는게 아니라 데이터를 기반으로 새로운 데이터를 저장하는 방식이ㅏ. useRecoilState : 값을 변경하고 불러오는 과정을 useState 처럼 사용할 수 있는 훅이다. 변경이나 삭제 등 유용하다. selector : 파생된 상태 개념에서 출발한다. 파생된 상태..
-
-
interceptor in <axios> //// axios setting기타 2021. 6. 15. 15:47
axios 요청시 1. 기본 url 설정 2. 헤더기본설정 3. 에러가 났을때 공통으로 처리하고 싶을때 interceptor : 1. 요청하기 직전 , 2. 응답을 받고 try catch 문으로 처리직전에 가로챌수 있다. axios.defaults.baseURL = process.env.BASE_URL; axios.defaults.headers.token = token; axios.defaults.baseURL = 'https://api.example.com'; axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlenc..