addItem.spec.js
1 const db = require('../../src/persistence'); 2 const addItem = require('../../src/routes/addItem'); 3 const ITEM = { id: 12345 }; 4 const {v4 : uuid} = require('uuid'); 5 6 jest.mock('uuid', () => ({ v4: jest.fn() })); 7 8 jest.mock('../../src/persistence', () => ({ 9 removeItem: jest.fn(), 10 storeItem: jest.fn(), 11 getItem: jest.fn(), 12 })); 13 14 test('it stores item correctly', async () => { 15 const id = 'something-not-a-uuid'; 16 const name = 'A sample item'; 17 const req = { body: { name } }; 18 const res = { send: jest.fn() }; 19 20 uuid.mockReturnValue(id); 21 22 await addItem(req, res); 23 24 const expectedItem = { id, name, completed: false }; 25 26 expect(db.storeItem.mock.calls.length).toBe(1); 27 expect(db.storeItem.mock.calls[0][0]).toEqual(expectedItem); 28 expect(res.send.mock.calls[0].length).toBe(1); 29 expect(res.send.mock.calls[0][0]).toEqual(expectedItem); 30 });