Advertisement
Guest User

Untitled

a guest
May 28th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. import { MockAWS } from '../mock-services/mock-aws';
  2.  
  3. if (process.env.ENV !== 'CI') {
  4. /* tslint:disable-next-line */
  5. new MockAWS();
  6. } else {
  7. /* tslint:disable-next-line */
  8. new MockAWS(['lambda', 'sns', 'ses']);
  9. }
  10.  
  11. import * as request from 'supertest';
  12. import { ChatModule } from "../src/modules/chat/chat.module";
  13. import { AWSs3Service } from "../src/modules/common/services/awsS3.service";
  14. import { AWSSESService } from "../src/modules/common/services/awsSES.service";
  15. import { FcmService } from "../src/modules/common/services/fcm.service";
  16. import { PRIVILEGES } from "../src/modules/constants";
  17. import { PaymentModule } from "../src/modules/payment/payment.module";
  18. import { ThreadModule } from "../src/modules/thread/thread.module";
  19. import { StaffService } from "../src/modules/user/services/staff.service";
  20. import { UserModule } from "../src/modules/user/user.module";
  21. import { createApp, createClientWrapper, createServer, createStaffWrapper } from './util';
  22.  
  23. const modules = [
  24. UserModule,
  25. PaymentModule,
  26. ChatModule,
  27. ThreadModule,
  28. ];
  29.  
  30. const components = [
  31. StaffService,
  32. AWSSESService,
  33. AWSs3Service,
  34. FcmService,
  35. ];
  36.  
  37. describe('Package controller tests: ', () => {
  38. let server;
  39. let createStaff;
  40. let createClient;
  41. let staffService;
  42. let app;
  43.  
  44. beforeAll(async () => {
  45. server = await createServer();
  46. app = await createApp(server, modules, components);
  47. staffService = app.get(StaffService);
  48. createStaff = createStaffWrapper(server, staffService);
  49. createClient = createClientWrapper(server);
  50. });
  51.  
  52. afterAll(() => {
  53. app.close();
  54. });
  55.  
  56. describe('GET /packages', () => {
  57. it('should return status 200 and packages list', async () => {
  58. const manager = await createStaff(PRIVILEGES.CONSULTANT, 'Cooper1', { countries: JSON.stringify(['PL', 'GB']) });
  59. const client = await createClient('Homer1');
  60.  
  61. await request(server)
  62. .get('/packages?currency=PLN')
  63. .set('authorization', manager.token)
  64. .expect(200)
  65. .expect(({body}) => {
  66. expect(body.currencyIsoCode === 'PLN');
  67. expect(body.packages.length).toBe(4);
  68. });
  69.  
  70. await request(server)
  71. .get('/packages')
  72. .set('authorization', client.token)
  73. .expect(200)
  74. .expect(({body}) => {
  75. expect(body.currencyIsoCode === 'GBP');
  76. expect(body.packages.length).toBe(4);
  77. });
  78.  
  79. await request(server)
  80. .get('/packages?currency=')
  81. .set('authorization', manager.token)
  82. .expect(200)
  83. .expect(({body}) => {
  84. expect(body.currencyIsoCode === 'PLN');
  85. expect(body.packages.length).toBe(4);
  86. });
  87.  
  88. await request(server)
  89. .get('/packages?currency=')
  90. .expect(200)
  91. .expect(({body}) => {
  92. expect(body.currencyIsoCode === 'EUR');
  93. expect(body.packages.length).toBe(4);
  94. });
  95.  
  96. await request(server)
  97. .get('/packages?currency=GBP')
  98. .expect(200)
  99. .expect(({body}) => {
  100. expect(body.currencyIsoCode === 'GBP');
  101. expect(body.packages.length).toBe(4);
  102. });
  103. });
  104. });
  105.  
  106. describe('GET /packages/:id', () => {
  107. it('should return status 200 and particular package', async () => {
  108. const manager = await createStaff(PRIVILEGES.CONSULTANT, 'Cooooper', { countries: JSON.stringify(['PL', 'GB']) });
  109. const client = await createClient('Hooomer');
  110.  
  111. const { body: packResponse } = await request(server)
  112. .get('/packages?currency=GBP')
  113. .set('authorization', manager.token)
  114. .expect(200)
  115. .expect(({body}) => {
  116. expect(body.currencyIsoCode === 'PLN');
  117. expect(body.packages.length).toBe(4);
  118. });
  119.  
  120. const { body: packClientResponse } = await request(server)
  121. .get('/packages?currency=EUR')
  122. .set('authorization', client.token)
  123. .expect(200)
  124. .expect(({body}) => {
  125. expect(body.currencyIsoCode === 'EUR');
  126. expect(body.packages.length).toBe(4);
  127. });
  128.  
  129. await request(server)
  130. .get('/packages?currency=PLN')
  131. .set('authorization', client.token)
  132. .expect(200)
  133. .expect(({body}) => {
  134. expect(body.currencyIsoCode === 'PLN');
  135. expect(body.packages.length).toBe(4);
  136. });
  137.  
  138. await request(server)
  139. .get(`/packages/${packClientResponse.packages[0].id}`)
  140. .set('authorization', client.token)
  141. .expect(200)
  142. .expect(({body}) => {
  143. expect(body.id).toBeDefined();
  144. });
  145.  
  146. await request(server)
  147. .get(`/packages/${packResponse.packages[0].id}`)
  148. .set('authorization', manager.token)
  149. .expect(200)
  150. .expect(({body}) => {
  151. expect(body.id).toBeDefined();
  152. });
  153.  
  154. await request(server)
  155. .get(`/packages/${packResponse.packages[0].id}`)
  156. .expect(200)
  157. .expect(({body}) => {
  158. expect(body.id).toBeDefined();
  159. });
  160. });
  161. });
  162. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement