Guest User

Untitled

a guest
Jan 20th, 2018
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. // UserRepository.js -------------------------------------------------------------------------
  2. // ... implementation
  3.  
  4. module.exports = UserRepository;
  5.  
  6. // UserService.js -------------------------------------------------------------------------
  7. // ... implementation
  8.  
  9. module.exports = UserService;
  10.  
  11. // createNewUser.js -------------------------------------------------------------------------
  12. const createNewUser = (userService) => (newUser) => {
  13. // ... implementation that uses userService
  14. }
  15.  
  16. module.exports = createController;
  17.  
  18. // app.js -------------------------------------------------------------------------
  19. const express = require('express')
  20. const app = express()
  21. const UserRepository = require('./UserRepository');
  22. const UserService = require('./UserService');
  23.  
  24. // initialize db and everything
  25. const userRepository = new UserRepository();
  26. const userservice = new UserService(userRepository);
  27.  
  28. const createNewUser = require('./createNewUser')(userservice);
  29.  
  30. app.post('/register', (req, res) => {
  31. const newUser = req.body;
  32. // prepare other args as well
  33. createNewUser(newUser)
  34. .then(result => res.json({ /* ... */ })
  35. .catch(error => res.json({ /* ... */ });
  36. });
  37.  
  38. app.listen(3000, () => console.log('Example app listening on port 3000!'))
  39.  
  40. // Test: createNewUser.spec.js -------------------------------------------------------------------------
  41. describe('createNewUser', function() {
  42. it('will fail when insert new user', function() {
  43. const userServiceStub = {
  44. getByEmail() {
  45. return Promise.resolve('test@gmail.com');
  46. },
  47. insertUser(user) {
  48. return Promise.reject({ /* error props */ });
  49. }
  50. };
  51.  
  52. const result = createNewUser(userservice))({ /* user data */ })
  53.  
  54. // assert on result ...
  55. });
  56. });
Add Comment
Please, Sign In to add comment