Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. /* globals require describe it beforeEach afterEach*/
  2.  
  3. 'use strict';
  4.  
  5. const chai = require('chai');
  6. const sinonModule = require('sinon');
  7. const chaiHttp = require('chai-http');
  8. const express = require('express');
  9. const config = require('./config');
  10.  
  11. chai.use(chaiHttp);
  12.  
  13. let expect = chai.expect;
  14.  
  15. describe('Test event router', () => {
  16. let sinon;
  17.  
  18. let controller = {
  19. getEvents: (req, res) => {},
  20. getEventDetails: (req, res) => {},
  21. commentEvent: (req, res) => {},
  22. createEvent: (req, res) => {}
  23. };
  24.  
  25. let controllers = {
  26. events: controller
  27. };
  28.  
  29. let events = [{
  30. _id: 1,
  31. name: 'HackConf',
  32. eventType: 'Education',
  33. city: 'Sofia',
  34. country: 'Bulgaria',
  35. address: 'Al. Malinov',
  36. description: 'IT Conferencerhierhyieuryieuryeiuryieyrieryeiuryeiuyrieuyrieuyrieuyrieuyrieuryeiuyreiryeiuryeiuryieyrieyre',
  37. dateOfEvent: new Date('2016-12-20 10:00:00'),
  38. endDateOfEvent: new Date('2016-12-20 18:00:00'),
  39. coverUrl: 'http://radorado.me/wp-content/uploads/2015/01/hackbulgaria.png',
  40. capacity: 500,
  41. minAge: 10,
  42. rating: 5,
  43. isDeleted: false,
  44. isApproved: true
  45. }];
  46.  
  47. beforeEach(() => {
  48. sinon = sinonModule.sandbox.create();
  49.  
  50. sinon.stub(controller, 'getEvents', (req, res) => {
  51. res.render('event/event-list', {
  52. model: events
  53. });
  54. });
  55. sinon.stub(controller, 'getEventDetails', (req, res) => {
  56. let event = events.find(ev => ev._id === +req.params.id);
  57.  
  58. res.render('event/event-details', {
  59. model: event || null
  60. });
  61. });
  62. sinon.stub(controller, 'createEvent', (req, res) => {
  63. res.render('event/event-list', {
  64. model: events
  65. });
  66. });
  67. });
  68.  
  69. afterEach(() => {
  70. sinon.restore();
  71. });
  72.  
  73. describe('GET /events/create', () => {
  74. it('Expects to return 1 event', done => {
  75. let app = require('../config/application')(config);
  76. require('../routers/event-router')({ app, express, data: {} });
  77.  
  78. chai.request(app)
  79. .get('/events/')
  80. .end((req, res) => {
  81. expect(res.status).equals(200);
  82. done();
  83. });
  84. });
  85. });
  86.  
  87. describe('GET /events/:id', () => {
  88. it('Valid ID', done => {
  89. let app = require('../config/application')({ data: {} });
  90. require('../routers/event-router')({ app, controllers });
  91.  
  92. chai.request(app)
  93. .get('/events/1')
  94. .end((req, res) => {
  95. expect(res.status).equals(200);
  96. done();
  97. });
  98. });
  99. });
  100. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement