Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. import { expect } from 'chai';
  2. import { stubObject, stubInterface, stubConstructor } from 'ts-sinon';
  3. import mongoose = require('mongoose');
  4. import Container from 'typedi';
  5. import { UserService } from '../services/userService';
  6. import { OrderService } from '../services/orderService';
  7. import { User } from '../domain/models/user/user';
  8. import { Username } from '../domain/models/user/username';
  9. import { Email } from '../domain/models/user/email';
  10. import { Password } from '../domain/models/user/password';
  11. import { Priority } from '../domain/models/user/priority';
  12. import { Nif } from '../domain/models/user/nif';
  13. import { Address } from '../domain/models/user/address';
  14. import { UserDTO } from '../domain/dtos/UserDTO';
  15. import { ProductDTO } from '../domain/dtos/ProductDTO';
  16. import { Quantity } from '../domain/models/order/quantity';
  17. import { DeliveryDate } from '../domain/models/order/deliverydate';
  18. import { Order } from '../domain/models/order/order';
  19. import { OrderDTO } from '../domain/dtos/OrderDTO';
  20. import { OrderRepository } from '../infra/database/repositories/OrderRepository';
  21. import { OrderDocument } from '../infra/database/models/order';
  22. import { UserRepository } from '../infra/database/repositories/UserRepository';
  23. import { UserDocument } from '../infra/database/models/user';
  24.  
  25.  
  26. var Mockgoose = require('mock-mongoose').Mockgoose;
  27. var mockgoose = new Mockgoose(mongoose);
  28.  
  29. describe('OrderService', async function () {
  30. var clientService: UserService, orderService: OrderService;
  31. var orderStubRepository, clientStubService;
  32.  
  33. //-----------User data------------
  34. var username = new Username('User');
  35. var email = new Email('test@email.com');
  36. var pass = new Password('pass');
  37. var priority = new Priority();
  38. priority.setPriority(1);
  39. var address = new Address('Rua dos testes, 85');
  40. var nif = new Nif(123456789);
  41. var user = new User(username, email, pass, address, nif);
  42.  
  43. var userDTO = new UserDTO('User', 'test@email.com', 'pass', 'Rua dos testes, 85', 123456789);
  44. userDTO.priority = 1;
  45.  
  46. //-----------Order data------------
  47. var product = new ProductDTO(1, 'Spoon');
  48. var quantity = new Quantity(100);
  49. var deliveryDate = new DeliveryDate(2030, 11, 9);
  50. var order = new Order(user, product, quantity, deliveryDate);
  51.  
  52. var orderDTO = new OrderDTO('User', product, 100, new Date('2030-11-9'), 'OnHold');
  53. this.enableTimeouts(false);
  54.  
  55. before(async () => {
  56. await mockgoose.prepareStorage().then(async function () {
  57. await mongoose.connect(process.env.DATABASE_URL, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true });
  58. mongoose.set('useFindAndModify', false);
  59.  
  60. //Repositories
  61. var orderRepository = new OrderRepository(OrderDocument);
  62. var userRepository = new UserRepository(UserDocument);
  63.  
  64. //Services
  65. clientService = new UserService();
  66.  
  67. //Stubs
  68. orderStubRepository = stubObject<OrderRepository>(orderRepository);
  69. clientStubService = stubObject<UserService>(clientService);
  70.  
  71. Container.set(UserService, clientStubService);
  72. orderService = new OrderService();
  73. console.log("AWAIT");
  74. })
  75. console.log("BEFORE");
  76. })
  77.  
  78. describe('getAllOrders', function () {
  79. it('Should return list when there are orders', async function () {
  80. console.log("ORDERS EXIST");
  81. console.log(orderStubRepository);
  82. orderStubRepository.findAll.returns(Array.of(order));
  83. var result = await OrderService.getAllOrders();
  84. expect(result).to.not.be.empty
  85. expect(result.length).to.equal(1)
  86.  
  87. });
  88.  
  89. it('Should return empty when there are no orders', async function () {
  90. console.log("DONT");
  91. orderStubRepository.findAll.returns([]);
  92. expect(await OrderService.getAllOrders()).to.be.empty
  93. });
  94. });
  95. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement