Created
January 20, 2015 16:46
-
-
Save lindslev/3553b24158213ec0b96a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 'use strict'; | |
| var should = require('should'); | |
| var app = require('../../app'); | |
| var supertest = require('supertest'); | |
| var agent = supertest.agent(app); | |
| var mongoose = require('mongoose'); | |
| var HelpTicket = mongoose.model('HelpTicket'); | |
| var ticketId; | |
| var User = require('../user/user.model.js'); | |
| var user = new User(); | |
| var ticket = { | |
| description: 'test help ticket', | |
| requestor: new User({email: 'foo@bar'}), | |
| }; | |
| var LoginHelper = require('../../components/login.controller.specHelper.js'); | |
| function createHelpTicket() { | |
| return function(done) { | |
| HelpTicket.create(ticket, function(err, ht) { | |
| if(err) return done(err); | |
| ticketId = ht._id; | |
| done(); | |
| }) | |
| } | |
| } | |
| describe('help tickets',function() { | |
| var session = new LoginHelper(agent, before) | |
| describe('GET all help tickets - /api/helptickets', function() { | |
| it('should respond with JSON array', function(done) { | |
| agent | |
| .get('/api/helptickets') | |
| .set(session.auth) | |
| .expect(200) | |
| .expect('Content-Type', /json/) | |
| .end(function(err, res) { | |
| if (err) return done(err); | |
| res.body.should.be.instanceof(Array); | |
| done(); | |
| }); | |
| }); | |
| }); | |
| describe('POST a new help ticket - /api/helptickets', function() { | |
| it('should respond with JSON object', function(done) { | |
| agent | |
| .post('/api/helptickets') | |
| .set(session.auth) | |
| .send(ticket) | |
| .expect(201) | |
| .expect('Content-Type', /json/) | |
| .end(function(err, res) { | |
| if (err) return done(err); | |
| res.body.should.be.instanceof(Object); | |
| res.body.status.should.equal('open'); | |
| done(); | |
| }); | |
| }); | |
| }); | |
| describe('get a single help ticket - /api/helptickets/:id', function() { | |
| before(createHelpTicket()); | |
| it('should respond with JSON object', function(done) { | |
| agent | |
| .get('/api/helptickets/'+ticketId) | |
| .set(session.auth) | |
| .expect('Content-Type', /json/) | |
| .expect(200) | |
| .end(function(err, res) { | |
| if (err) return done(err); | |
| res.body.should.be.instanceof(Object); | |
| done(); | |
| }); | |
| }); | |
| }); | |
| describe('assign a single help ticket - /api/helptickets/:id/assign', function() { | |
| before(createHelpTicket()); | |
| it('should respond with an assigned help ticket', function(done) { | |
| agent | |
| .put('/api/helptickets/'+ticketId + '/assign') | |
| .set(session.auth) | |
| .send({responder: user}) | |
| .expect(200) | |
| .expect('Content-Type', /json/) | |
| .end(function(err, res) { | |
| if (err) return done(err); | |
| res.body.should.be.instanceof(Object); | |
| done(); | |
| }); | |
| }); | |
| }); | |
| describe('resolve a single help ticket - /api/helptickets/:id/resolve', function() { | |
| before(createHelpTicket()); | |
| it('should respond with the resolved help ticket', function(done) { | |
| agent | |
| .put('/api/helptickets/'+ticketId + '/resolve') | |
| .set(session.auth) | |
| .send({status: 'resolved', closeTime: Date.now()}) | |
| .expect(200) | |
| .expect('Content-Type', /json/) | |
| .end(function(err, res) { | |
| if (err) return done(err); | |
| res.body.should.be.instanceof(Object); | |
| res.body.status.should.equal('resolved'); | |
| done(); | |
| }); | |
| }); | |
| }); | |
| describe('delete a single help ticket - /api/helptickets/:id', function() { | |
| before(createHelpTicket()); | |
| it('should respond with 204 status', function(done) { | |
| agent | |
| .delete('/api/helptickets/'+ticketId) | |
| .set(session.auth) | |
| .expect(204) | |
| .end(function(err, res) { | |
| if (err) return done(err); | |
| done(); | |
| }); | |
| }); | |
| }); | |
| }) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment