Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // UserRepository.js -------------------------------------------------------------------------
- // ... implementation
- module.exports = UserRepository;
- // UserService.js -------------------------------------------------------------------------
- // ... implementation
- module.exports = UserService;
- // createNewUser.js -------------------------------------------------------------------------
- const createNewUser = (userService) => (newUser) => {
- // ... implementation that uses userService
- }
- module.exports = createController;
- // app.js -------------------------------------------------------------------------
- const express = require('express')
- const app = express()
- const UserRepository = require('./UserRepository');
- const UserService = require('./UserService');
- // initialize db and everything
- const userRepository = new UserRepository();
- const userservice = new UserService(userRepository);
- const createNewUser = require('./createNewUser')(userservice);
- app.post('/register', (req, res) => {
- const newUser = req.body;
- // prepare other args as well
- createNewUser(newUser)
- .then(result => res.json({ /* ... */ })
- .catch(error => res.json({ /* ... */ });
- });
- app.listen(3000, () => console.log('Example app listening on port 3000!'))
- // Test: createNewUser.spec.js -------------------------------------------------------------------------
- describe('createNewUser', function() {
- it('will fail when insert new user', function() {
- const userServiceStub = {
- getByEmail() {
- return Promise.resolve('test@gmail.com');
- },
- insertUser(user) {
- return Promise.reject({ /* error props */ });
- }
- };
- const result = createNewUser(userservice))({ /* user data */ })
- // assert on result ...
- });
- });
Add Comment
Please, Sign In to add comment