import router, { routes } from './route' import samples from './_sampleData' import sinon from 'sinon' import mongoose from 'mongoose' jest.mock('./model') function ResClass () { this._status = null this._data = null this.status = (status) => { this._status = status } this.send = (data) => { this._data = data } this.json = (data) => { this._data = data this._status = 200 } } describe('Route handlers', () => { it('handles the GET request for lists.', () => { // if no _id is passed, return a list of objects. // apply the limits correctly const reqList = { params: {}, query: {limit: 2.4, offset: 1.2} } const res = new ResClass() const returnValue = routes.get(reqList, res) expect(returnValue).toBeUndefined() expect(res._data).toEqual(samples.slice(2, 4)) expect(res._status).toBe(200) }) it('handles the GET request for single documents.', () => { const reqOne = { params: {id: '18a0d6883d34293254afae42'}, query: undefined } const res = new ResClass() const returnValue = routes.get(reqOne, res) expect(returnValue).toBeUndefined() expect(res._data).toBe(samples[0]) expect(res._status).toBe(200) }) it('handles the POST request.', () => { const reqOne = { params: {id: '18a0d6883d34293254afae42'}, query: undefined } const res = new ResClass() const returnValue = routes.post(reqOne, res) expect(returnValue).toBeUndefined() expect(res._data).toBe(samples[0]) expect(res._status).toBe(200) }) })