Advertisement
Guest User

Untitled

a guest
Sep 18th, 2017
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. ## users/users-repository.js ####################
  2. const users = new Map()
  3. exports.create = user => users.set(user.username, user)
  4. exports.read = username => users.get(username)
  5.  
  6. ## users/users.js ###############################
  7. const defaultUsersRepo = require('./users-repository')
  8. module.exports = (usersRepo = defaultUsersRepo) => {
  9. return {
  10. create: user => {
  11. if (!user.username || !user.email || !user.hashPassword || user.hashPassword.length < 8)
  12. return false
  13.  
  14. usersRepo.create(user)
  15. return true
  16. },
  17. read: username => usersRepo.read(username)
  18. }
  19. }
  20.  
  21. ## users/users.spec.js ##########################
  22. const mockUsersRepo = () => {
  23. const users = new Map()
  24. return {
  25. create: (user) => users.set(user.username, user),
  26. read: (username) => users.get(username)
  27. }
  28. }
  29. const assert = require('assert')
  30. const users = require('./users')(mockUsersRepo())
  31. assert(users.create({username: 'bob', email: 'example@example.com', hashPassword: 'A$%Hsdf&/F'}))
  32. const user = users.read('bob')
  33. assert(user)
  34. assert.equal(user.username, 'bob')
  35. assert.equal(user.email, 'example@example.com')
  36. assert.equal(user.hashPassword, 'A$%Hsdf&/F')
  37. assert(!users.create({username: 'bob', hashPassword: 'A$%Hsdf&/F'}))
  38. assert(!users.create({username: 'bob', email: 'example@example.com', hashPassword: 'HHR$'}))
  39.  
  40. ## users/index.js ###############################
  41. const users = require('./users')
  42. const usersRepo = require('./users-repository')
  43. exports.users = users
  44. exports.usersRepo = usersRepo
  45.  
  46. ## app.js #######################################
  47. // const users = require('./users').users((require('./users').usersRepo)) // without default parameters
  48. const users = require('./users').users() // using default parameters
  49.  
  50. if (!users.create({username: process.env.USERNAME, email: process.env.EMAIL, hashPassword: process.env.HASH_PASSWORD}))
  51. throw new Error('Invalid user\'s information')
  52. console.log(users.read(process.env.USERNAME))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement