delete-tests.js 955 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const sinon = require('sinon');
  2. const proxyquire = require('proxyquire').noCallThru();
  3. const storage = {
  4. del: sinon.stub(),
  5. ttl: sinon.stub()
  6. };
  7. function request(id) {
  8. return {
  9. params: { id }
  10. };
  11. }
  12. function response() {
  13. return {
  14. sendStatus: sinon.stub()
  15. };
  16. }
  17. const delRoute = proxyquire('../../server/routes/delete', {
  18. '../storage': storage
  19. });
  20. describe('/api/delete', function() {
  21. afterEach(function() {
  22. storage.del.reset();
  23. });
  24. it('calls storage.del with the id parameter', async function() {
  25. const req = request('x');
  26. const res = response();
  27. await delRoute(req, res);
  28. sinon.assert.calledWith(storage.del, 'x');
  29. sinon.assert.calledWith(res.sendStatus, 200);
  30. });
  31. it('sends a 404 on failure', async function() {
  32. storage.del.returns(Promise.reject(new Error()));
  33. const res = response();
  34. await delRoute(request('x'), res);
  35. sinon.assert.calledWith(res.sendStatus, 404);
  36. });
  37. });