Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## users/users-repository.js ####################
- const users = new Map()
- exports.create = user => users.set(user.username, user)
- exports.read = username => users.get(username)
- ## users/users.js ###############################
- const defaultUsersRepo = require('./users-repository')
- module.exports = (usersRepo = defaultUsersRepo) => {
- return {
- create: user => {
- if (!user.username || !user.email || !user.hashPassword || user.hashPassword.length < 8)
- return false
- usersRepo.create(user)
- return true
- },
- read: username => usersRepo.read(username)
- }
- }
- ## users/users.spec.js ##########################
- const mockUsersRepo = () => {
- const users = new Map()
- return {
- create: (user) => users.set(user.username, user),
- read: (username) => users.get(username)
- }
- }
- const assert = require('assert')
- const users = require('./users')(mockUsersRepo())
- assert(users.create({username: 'bob', email: 'example@example.com', hashPassword: 'A$%Hsdf&/F'}))
- const user = users.read('bob')
- assert(user)
- assert.equal(user.username, 'bob')
- assert.equal(user.email, 'example@example.com')
- assert.equal(user.hashPassword, 'A$%Hsdf&/F')
- assert(!users.create({username: 'bob', hashPassword: 'A$%Hsdf&/F'}))
- assert(!users.create({username: 'bob', email: 'example@example.com', hashPassword: 'HHR$'}))
- ## users/index.js ###############################
- const users = require('./users')
- const usersRepo = require('./users-repository')
- exports.users = users
- exports.usersRepo = usersRepo
- ## app.js #######################################
- // const users = require('./users').users((require('./users').usersRepo)) // without default parameters
- const users = require('./users').users() // using default parameters
- if (!users.create({username: process.env.USERNAME, email: process.env.EMAIL, hashPassword: process.env.HASH_PASSWORD}))
- throw new Error('Invalid user\'s information')
- console.log(users.read(process.env.USERNAME))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement