@@ -4,6 +4,7 @@ import { TicketCreatedResponse } from '../../model/ticket/ticket-created-respons
44import { TicketCreationRequest } from '../../model/ticket/ticket-creation-request' ;
55import { Qminder } from '../../qminder' ;
66import { TicketService } from './ticket.service' ;
7+ import { ResponseValidationError } from '../../model/errors/response-validation-error' ;
78
89describe ( 'Ticket service' , function ( ) {
910 const JON_SNOW = {
@@ -29,7 +30,7 @@ describe('Ticket service', function () {
2930 } ;
3031
3132 const ticketsWithMessages = {
32- data : tickets . data . map ( ( each ) => ( { ...each , messages : [ ] } ) ) ,
33+ data : tickets . data . map ( ( each ) => ( { ...each , messages : [ ] as any [ ] } ) ) ,
3334 } ;
3435
3536 it ( 'searches based on lines' , function ( done ) {
@@ -406,10 +407,6 @@ describe('Ticket service', function () {
406407 ] ,
407408 } ;
408409
409- const ticketsWithMessages = {
410- data : tickets . data . map ( ( each ) => ( { ...each , messages : [ ] } ) ) ,
411- } ;
412-
413410 it ( 'searches based on lines' , function ( done ) {
414411 const request = { line : [ 123 , 124 , 125 ] } ;
415412 requestStub . onCall ( 0 ) . resolves ( tickets ) ;
@@ -796,6 +793,21 @@ describe('Ticket service', function () {
796793 } ) ;
797794 expect ( res ) . toEqual ( SUCCESSFUL_RESPONSE ) ;
798795 } ) ;
796+
797+ it ( 'should throw when response does not contain ID' , async ( ) => {
798+ requestStub . mockResolvedValue ( { } ) ;
799+ const request : TicketCreationRequest = {
800+ lineId : '41299290' ,
801+ firstName : 'James' ,
802+ lastName : 'Baxter' ,
803+ email : 'foo@bar.com' ,
804+ } ;
805+ await expect ( async ( ) => {
806+ await TicketService . create ( request ) ;
807+ } ) . rejects . toThrow (
808+ new ResponseValidationError ( 'Response does not contain "id"' ) ,
809+ ) ;
810+ } ) ;
799811 } ) ;
800812
801813 describe ( 'details()' , function ( ) {
0 commit comments