| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  | import { | 
					
						
							|  |  |  |   beforeEach, | 
					
						
							|  |  |  |   ddescribe, | 
					
						
							|  |  |  |   describe, | 
					
						
							|  |  |  |   expect, | 
					
						
							|  |  |  |   iit, | 
					
						
							|  |  |  |   inject, | 
					
						
							|  |  |  |   it, | 
					
						
							|  |  |  |   xdescribe, | 
					
						
							|  |  |  |   xit, | 
					
						
							| 
									
										
										
										
											2016-04-28 17:50:03 -07:00
										 |  |  | } from '@angular/core/testing/testing_internal'; | 
					
						
							|  |  |  | import {BaseException, WrappedException, ExceptionHandler} from '../src/exceptions'; | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _CustomException { | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |   context = "some context"; | 
					
						
							|  |  |  |   toString(): string { return "custom"; } | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function main() { | 
					
						
							|  |  |  |   describe('ExceptionHandler', () => { | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |     it("should output exception", () => { | 
					
						
							|  |  |  |       var e = ExceptionHandler.exceptionToString(new BaseException("message!")); | 
					
						
							|  |  |  |       expect(e).toContain("message!"); | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |     it("should output stackTrace", () => { | 
					
						
							|  |  |  |       var e = ExceptionHandler.exceptionToString(new BaseException("message!"), "stack!"); | 
					
						
							|  |  |  |       expect(e).toContain("stack!"); | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |     it("should join a long stackTrace", () => { | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |       var e = | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |           ExceptionHandler.exceptionToString(new BaseException("message!"), ["stack1", "stack2"]); | 
					
						
							|  |  |  |       expect(e).toContain("stack1"); | 
					
						
							|  |  |  |       expect(e).toContain("stack2"); | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |     it("should output reason when present", () => { | 
					
						
							|  |  |  |       var e = ExceptionHandler.exceptionToString(new BaseException("message!"), null, "reason!"); | 
					
						
							|  |  |  |       expect(e).toContain("reason!"); | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |     describe("context", () => { | 
					
						
							|  |  |  |       it("should print context", () => { | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |         var e = ExceptionHandler.exceptionToString( | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |             new WrappedException("message!", null, null, "context!")); | 
					
						
							|  |  |  |         expect(e).toContain("context!"); | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |       it("should print nested context", () => { | 
					
						
							|  |  |  |         var original = new WrappedException("message!", null, null, "context!"); | 
					
						
							|  |  |  |         var e = ExceptionHandler.exceptionToString(new WrappedException("message", original)); | 
					
						
							|  |  |  |         expect(e).toContain("context!"); | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |       it("should not print context when the passed-in exception is not a BaseException", () => { | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |         var e = ExceptionHandler.exceptionToString(new _CustomException()); | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |         expect(e).not.toContain("context"); | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |     describe('original exception', () => { | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |       it("should print original exception message if available (original is BaseException)", () => { | 
					
						
							|  |  |  |         var realOriginal = new BaseException("inner"); | 
					
						
							|  |  |  |         var original = new WrappedException("wrapped", realOriginal); | 
					
						
							| 
									
										
										
										
											2015-09-10 15:25:36 -07:00
										 |  |  |         var e = | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |             ExceptionHandler.exceptionToString(new WrappedException("wrappedwrapped", original)); | 
					
						
							|  |  |  |         expect(e).toContain("inner"); | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |       it("should print original exception message if available (original is not BaseException)", | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |          () => { | 
					
						
							|  |  |  |            var realOriginal = new _CustomException(); | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |            var original = new WrappedException("wrapped", realOriginal); | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |            var e = | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |                ExceptionHandler.exceptionToString(new WrappedException("wrappedwrapped", original)); | 
					
						
							|  |  |  |            expect(e).toContain("custom"); | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |          }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     describe('original stack', () => { | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |       it("should print original stack if available", () => { | 
					
						
							|  |  |  |         var realOriginal = new BaseException("inner"); | 
					
						
							|  |  |  |         var original = new WrappedException("wrapped", realOriginal, "originalStack"); | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |         var e = ExceptionHandler.exceptionToString( | 
					
						
							| 
									
										
										
										
											2016-04-12 09:40:37 -07:00
										 |  |  |             new WrappedException("wrappedwrapped", original, "wrappedStack")); | 
					
						
							|  |  |  |         expect(e).toContain("originalStack"); | 
					
						
							| 
									
										
										
										
											2015-07-23 18:00:19 -07:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2015-07-22 17:13:42 -07:00
										 |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-08-11 14:00:54 -07:00
										 |  |  | } |