import { MwHttpErrorParser } from './http-error-parser.service'; import { HttpErrorResponse } from '@angular/common/http'; import { ErrorCodes } from '../models'; describe('http-error-parser.service.ts', () => { let service: MwHttpErrorParser; beforeEach(() => { service = new MwHttpErrorParser(); }); it('parse - invalid grant message received - should parse', () => { const data = '{"error":"invalid_grant","error_description":"Incorrect email or password. Try again."}'; const error = new HttpErrorResponse({ error: JSON.parse(data), status: 400, }); const result = service.parse(error); expect(result.errors.length).toBe(1); expect(result.errors[0].errorCode).toBe(ErrorCodes.InvalidGrant); expect(result.errors[0].message).toBe( 'Incorrect email or password. Try again.' ); }); it('parse - 401 error received - should parse', () => { const error = new HttpErrorResponse({ error: { message: 'message' }, status: 401, }); const result = service.parse(error); expect(result.errors.length).toBe(1); expect(result.errors[0].errorCode).toBe(ErrorCodes.Unauthorized); expect(result.errors[0].message).toBe('message'); }); it('parse - .net core bad route response - should parse', () => { const data = `{"errors":{"id":["The value 'undefined' is not valid."]},"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":"One or more validation errors occurred.","status":400,"traceId":"00-8c951f837f52a2428b502bcc6ea6dc9c-6939651d6480454c-00"}`; const error = new HttpErrorResponse({ error: JSON.parse(data), status: 400, }); const result = service.parse(error); expect(result.errors.length).toBe(1); expect(result.errors[0].errorCode).toBe(ErrorCodes.BadRequest); expect(result.errors[0].message).toBe( `id: The value 'undefined' is not valid.` ); }); it('parse - general errors - should parse', () => { const data = '{"errors":[{"errorCode":10063,"message":"Unable to create POG API Client. Invalid ApplicationKey","memberName":null}]}'; const error = new HttpErrorResponse({ error: JSON.parse(data), status: 400, }); const result = service.parse(error); expect(result.errors.length).toBe(1); expect(result.errors[0].errorCode).toBe(10063); expect(result.errors[0].message).toBe( `Unable to create POG API Client. Invalid ApplicationKey` ); }); });