분류 전체보기
-
Jest did not exit one second after the test run has completed.테스팅/JEST 2019. 11. 6. 16:36
1. 문제 HTTP API 통신 테스트를 하다가 다음과 같은 경고를 만났다. Jest did not exit one second after the test run has completed. This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue. 2. 해결 테스트 실행 완료 후 1초 동안 Jest가 종료되지 않았다. 이 뜻은 테스트의 비동기 작업들이 종료되지 않았다는 것이다. 그래서 Jest를 실행할 때, '--detectOpenHandles' 옵션을 사용하는..
-
[Node.js] [Sequelize] Conversion failed when converting datetime from character string.이슈 해결 2019. 11. 6. 11:49
1. 문제 시퀄라이즈를 이용해서 Date 타입 필드를 where 조건에 걸어 조회하는 메소드를 사용했는데 다음과 같은 에러가 발생했다. 값에 역슬래시(이스케이프 처리) 때문에 문자열을 datetime으로 컨버팅에 실패한걸까? 문제는 해당 이스케이프 처리를 내가 한 게 아니라는거... 이스케이프 처리가 들어가야할 이유가 없는 것 같은데 왜 이스케이프 처리가 진행된 건지 모르겠다. 모델은 다음과 같이 정의했다. @Table({ freezeTableName: true, tableName: 'Some', timestamps: false, underscored: false }) export default class Some extends Model { @PrimaryKey @Colum(DataType.INTEGE..
-
2019-11-04 개발일지개발일지 2019. 11. 4. 18:48
# 오늘의 TODO 프론트팀 IE11에서 로그아웃 통신 이슈 분석 서포트 IE11에서 fetch API로 통신을 했을 때, 로그아웃 통신이 최초 1회만 통신이 수행되고 이후 통신이 서버로 전달되지 않는 문제를 분석했다. # 프론트팀 IE11에서 로그아웃 통신 이슈 분석 서포트 내용 1. 문제 로그인 로그아웃 HTTP API 통신을 프론트 팀에서 구현하고 있었다. fetch API로 통신을 구현하고 있는데, HTTP GET 메소드 통신에서 1회 통신은 정상적으로 요청 및 응답받고 2회 째 같은 통신은 요청이 서버로 전달되지 않는 문제가 IE 브라우저에서 발생했다. 이로 인해 세션을 지우는 로그아웃 기능이 로그인 / 로그아웃을 반복하면 먹통이 되는 문제가 발생하고 있었다. 2. 해결 과정 정말 다양한 뻘짓을..
-
webpack-node-externals는 왜 사용하는가?JavaScript/Node.js 2019. 11. 4. 16:09
webpack-node-externals는 왜 사용하는가? 를 복습할 겸 포스팅을 해보려고 한다. 해당 패키지에 대해 알기 전에 우선 node_modules를 이해할 필요가 있다. 자바스크립트의 라이브러리는 런타임환경인 Node.js로 만들어지며, 라이브러리 관리는 NPM 또는 YARN으로 한다. npm: https://www.npmjs.com/ npm | build amazing things Bring the best of open source to your company npm is the tool used by over 11,000,000 JavaScript developers around the world. Your developers already use it. Your company depen..
-
2019-11-01 개발일지개발일지 2019. 11. 1. 18:21
# 오늘의 TODO 마이그레이션 프로젝트 테스트 로그인 로그아웃 기능 테스트 케이스 작성 메인 화면 테스트 케이스 작성 # 마이그레이션 프로젝트 테스트 진행 내용 1. 테스트 목적 지금까지 만들어놓은 API를 테스트하기 위해 테스트 케이스를 만들고 테스트 코드를 작성했다. 2. 테스트 내용 가장 첫번째 테스트 케이스인 로그인 로그아웃에서 부터 막혔다. 로그인에 대한 테스트는 정상적으로 문제없이 통과했지만 로그아웃이 문제였다. supertest를 통해 로그아웃 요청을 발생시켰을 때, 내가 로그인 상태인지 그렇지 않은지를 검증할 방법이 없었다. 그래서 로그아웃을 진행하기 전, 로그인 상태인지 체크하는 미들웨어 코드에서 '로그인 상태가 아니다'라는 에러를 발생시켰다. 이러한 문제를 파악하고 해결하여 아래의 링..
-
[supertest] express-session 테스트는 어떻게 할까?테스팅/JEST 2019. 11. 1. 14:28
1. 고민 JEST를 통해 supertest npm 모듈로 HTTP 통신 API 테스트를 하고 있다. 로그인 테스트는 모든 케이스를 통과했고, 로그아웃 테스트를 진행했다. 로그아웃이 정상적으로 작동하는 테스트 케이스를 짜고 수행했다. 그 결과, 세션 정보가 없으니 '로그인 후에 이용'하라는 서버 에러를 발생시켰다. 이는 클라이언트에서 세션 쿠키 정보가 없어서 발생하는 문제라는 걸 파악했고, '테스트 과정에선 세션 테스트는 어떻게 하는가?' 고민하고 검색하여 해결할 수 있었다. 2. 해결과정 가장 먼저 프로젝트에 로그인 상태를 체크하는 기능이 많으니 테스트 코드 전용 '로그인 후 발급받은 세션 쿠키 정보를 리턴하는 공통 함수를 모듈화'했다. supertest.ts import supertest from '..
-
2019-10-31 개발일지개발일지 2019. 10. 31. 18:37
# 오늘의 TODO JEST 학습 프로젝트에 적용해보기 # 프로젝트에 적용 진행 내용 1. 적용 시작부터 문제 발생 프로젝트에 이미 만들어져있는 API들을 테스트하기 위해 supertest 모듈을 이용해서 HTTP 통신 테스트 코드를 짰다. supertest 객체를 만드는 것에 대해 반복되는 코드를 작성하기 귀찮아서 모듈로 하나 만들어놓고 import 해서 사용하는 코드를 짰다. supertest.ts import supertest from 'supertest'; import app from '../../../src/app'; const http = supertest(app); export default http; 프로젝트의 index.ts에서 app 객체를 export 하여 모듈화한다. 그리고 supe..