const db = require('../../src/persistence'); const addItem = require('../../src/routes/addItem'); const ITEM = { id: 12345 }; const uuid = require('uuid/v4'); jest.mock('uuid/v4', () => jest.fn()); jest.mock('../../src/persistence', () => ({ removeItem: jest.fn(), storeItem: jest.fn(), getItem: jest.fn(), })); test('it stores item correctly', async () => { const id = 'something-not-a-uuid'; const name = 'A sample item'; const req = { body: { name } }; const res = { send: jest.fn() }; uuid.mockReturnValue(id); await addItem(req, res); const expectedItem = { id, name, completed: false }; expect(db.storeItem.mock.calls.length).toBe(1); expect(db.storeItem.mock.calls[0][0]).toEqual(expectedItem); expect(res.send.mock.calls[0].length).toBe(1); expect(res.send.mock.calls[0][0]).toEqual(expectedItem); });