-
사용자 추가 API 성공, 실패시웹프로그래밍/node.js 2019. 6. 3. 18:39
POST/users
성공
- 201 상태코드를 반환한다
- 생성된 유저 객체를 반환한다
- 입력한 name을 반환한다
실패
- name파라미터 누락 시 400을 반환한다
- name이 중복일 경우 409를 반환한다
req.body를 사용하려면, bodyParser를 사용해야한다.
bodyParser 설치 : npm i body-parser --save
index.spec.js 코드 추가
describe('POST /users', ()=> { describe('성공시', ()=> { let body; let name = 'daniel' before(done=>{ request(app) .post('/users') // 데이터를 body로 보내줌 .send({name}) .expect(201) .end((err, res) => { body = res.body; done(); }); }); // 테스트 케이스가 동작하기 전에 미리 실행되는 함수 it('생성된 유저 객체를 반환한다', ()=> { //비동기에 대한 처리 body.should.have.property('id'); }); it('입력한 name을 반환한다', ()=>{ body.should.have.property('name', name) }); }); describe('실패시', ()=> { it('name 파라미터 누락 시 400을 반환한다', (done)=> { //비동기에 대한 처리 request(app) .post('/users') .send({}) .expect(400) .end(done); }); it('name이 중복일 경우 409를 반환한다', done=> { //비동기에 대한 처리 request(app) .post('/users') .send({name: 'daniel'}) .expect(409) .end(done); }); }); });
index.js 코드 추가
app.post('/users', (req, res) =>{ const name = req.body.name; if(!name) return res.status(400).end(); //user에 같은 이름이 있으면 배열을 따로 빼서 길이를 잰다. 길이가 있으면 409 const isConflic = users.filter(user => user.name === name).length; if(isConflic) return res.status(409).end(); const id = Date.now(); const user = {id, name}; users.push(user); res.status(201).json(user); })
실행 결과
'웹프로그래밍 > node.js' 카테고리의 다른 글
데이터베이스 (0) 2019.06.04 사용자 수정 API 성공, 실패시 (0) 2019.06.03 사용자 삭제 API 성공, 실패시 (0) 2019.06.03 사용자 조회 API 성공, 실패시 (0) 2019.06.03 첫 API 테스트 만들기 (0) 2019.06.03 댓글