diff options
Diffstat (limited to 'app/spec/routes/addItem.spec.js')
-rw-r--r-- | app/spec/routes/addItem.spec.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/spec/routes/addItem.spec.js b/app/spec/routes/addItem.spec.js new file mode 100644 index 0000000..0ec5e11 --- /dev/null +++ b/app/spec/routes/addItem.spec.js @@ -0,0 +1,30 @@ +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); +}); |