gta-service-desk
Version:
Node.js client for GotoAssist Service Desk
120 lines (89 loc) • 3.76 kB
text/coffeescript
nock = require 'nock'
mocks = require './mocks/mocks.coffee'
describe 'Incidents', ->
describe '#getIncident()', ->
nock(mocks.enums.api_host)
.get('/v1/incidents/1.json')
.reply(200, JSON.stringify(mocks.successfulResponse));
it 'Get an incident', (done) ->
serviceDesk.getIncident 1, (err, res) ->
throw err if err
throw 'Did not receive an incident' unless res.incident
done()
describe '#createIncident()', ->
nock(mocks.enums.api_host)
.post("/v1/incidents.json")
.reply(200, JSON.stringify(mocks.successfulResponse));
it 'Create an incident', (done) ->
serviceDesk.createIncident mocks.incidents[0], (err, res) ->
throw err if err
throw 'Could not create incident' unless res.incident
done()
describe '#updateIncident()', ->
nock(mocks.enums.api_host)
.put('/v1/incidents/1.json')
.reply(200, JSON.stringify(mocks.successfulResponse));
it 'Update an incident', (done) ->
serviceDesk.updateIncident 1, mocks.incidents[0], (err, res) ->
throw err if err
throw 'Could not update incident' unless res.incident
done()
describe '#updateIncidentSymptom()', ->
nock(mocks.enums.api_host)
.put("/v1/incidents/1/comments/2.json")
.query
note_type: 'symptom'
.reply(200, JSON.stringify(mocks.successfulResponse));
it 'Update an incident symptom', (done) ->
serviceDesk.updateIncidentSymptom 1, 2, 'Symptom: some string', (err, res) ->
throw err if err
throw 'Could not update incident' unless res.incident
done()
describe '#openIncident()', ->
nock(mocks.enums.api_host)
.put('/v1/incidents/1.json')
.reply(200, JSON.stringify(mocks.successfulResponse))
it 'Open or re-open incident', (done) ->
serviceDesk.openIncident 1, (err, res) ->
throw err if err
throw 'Could not open incident' if res.incident?.closed_at
done()
describe '#closeIncident()', ->
nock(mocks.enums.api_host)
.put('/v1/incidents/1.json')
.reply(200, JSON.stringify(mocks.successfulResponseWithClosedIncident))
it 'Close incident', (done) ->
serviceDesk.closeIncident 1, 'Close message', (err, res) ->
throw err if err
throw 'Could not close incident' unless res.incident.closed_at
done()
describe '#addIncidentComment()', ->
nock(mocks.enums.api_host)
.post('/v1/incidents/1/comments.json')
.query(note_type: 'comments')
.reply(200, JSON.stringify(mocks.successfulResponseWithClosedIncident))
it 'Comment added', () ->
serviceDesk.addIncidentComment 1, 'Test comment', (err, res) ->
throw err if err
#TODO: test for comment
describe '#addIncidentResolution()', ->
nock(mocks.enums.api_host)
.post('/v1/incidents/1/resolutions.json')
.query(note_type: 'resolutions')
.reply(200, JSON.stringify(mocks.successfulResponseWithClosedIncident))
it 'Resolution added', () ->
serviceDesk.addIncidentResolution 1, 'Test resolution', (err, res) ->
throw err if err
#TODO: test for resolution
describe '#resolveAndCloseIncident()', ->
nock(mocks.enums.api_host)
.post('/v1/incidents/1/resolutions.json')
.query(note_type: 'resolutions')
.reply(200, JSON.stringify(mocks.successfulResponseWithClosedIncident))
nock(mocks.enums.api_host)
.put('/v1/incidents/1.json')
.reply(200, JSON.stringify(mocks.successfulResponseWithComment))
it 'Resolution added', () ->
serviceDesk.addIncidentResolution 1, 'Test resolution', (err, res) ->
throw err if err
#TODO: test for resolution