94 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {
 | |
|   AsyncTestCompleter,
 | |
|   beforeEach,
 | |
|   ddescribe,
 | |
|   describe,
 | |
|   expect,
 | |
|   iit,
 | |
|   inject,
 | |
|   it,
 | |
|   xdescribe,
 | |
|   xit,
 | |
|   Log
 | |
| } from 'angular2/testing_internal';
 | |
| import {BaseException, WrappedException, ExceptionHandler} from 'angular2/src/facade/exceptions';
 | |
| 
 | |
| class _CustomException {
 | |
|   context = "some context";
 | |
|   toString(): string { return "custom"; }
 | |
| }
 | |
| 
 | |
| export function main() {
 | |
|   describe('ExceptionHandler', () => {
 | |
|     it("should output exception", () => {
 | |
|       var e = ExceptionHandler.exceptionToString(new BaseException("message!"));
 | |
|       expect(e).toContain("message!");
 | |
|     });
 | |
| 
 | |
|     it("should output stackTrace", () => {
 | |
|       var e = ExceptionHandler.exceptionToString(new BaseException("message!"), "stack!");
 | |
|       expect(e).toContain("stack!");
 | |
|     });
 | |
| 
 | |
|     it("should join a long stackTrace", () => {
 | |
|       var e =
 | |
|           ExceptionHandler.exceptionToString(new BaseException("message!"), ["stack1", "stack2"]);
 | |
|       expect(e).toContain("stack1");
 | |
|       expect(e).toContain("stack2");
 | |
|     });
 | |
| 
 | |
|     it("should output reason when present", () => {
 | |
|       var e = ExceptionHandler.exceptionToString(new BaseException("message!"), null, "reason!");
 | |
|       expect(e).toContain("reason!");
 | |
|     });
 | |
| 
 | |
|     describe("context", () => {
 | |
|       it("should print context", () => {
 | |
|         var e = ExceptionHandler.exceptionToString(
 | |
|             new WrappedException("message!", null, null, "context!"));
 | |
|         expect(e).toContain("context!");
 | |
|       });
 | |
| 
 | |
|       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!");
 | |
|       });
 | |
| 
 | |
|       it("should not print context when the passed-in exception is not a BaseException", () => {
 | |
|         var e = ExceptionHandler.exceptionToString(new _CustomException());
 | |
|         expect(e).not.toContain("context");
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     describe('original exception', () => {
 | |
|       it("should print original exception message if available (original is BaseException)", () => {
 | |
|         var realOriginal = new BaseException("inner");
 | |
|         var original = new WrappedException("wrapped", realOriginal);
 | |
|         var e =
 | |
|             ExceptionHandler.exceptionToString(new WrappedException("wrappedwrapped", original));
 | |
|         expect(e).toContain("inner");
 | |
|       });
 | |
| 
 | |
|       it("should print original exception message if available (original is not BaseException)",
 | |
|          () => {
 | |
|            var realOriginal = new _CustomException();
 | |
|            var original = new WrappedException("wrapped", realOriginal);
 | |
|            var e =
 | |
|                ExceptionHandler.exceptionToString(new WrappedException("wrappedwrapped", original));
 | |
|            expect(e).toContain("custom");
 | |
|          });
 | |
|     });
 | |
| 
 | |
|     describe('original stack', () => {
 | |
|       it("should print original stack if available", () => {
 | |
|         var realOriginal = new BaseException("inner");
 | |
|         var original = new WrappedException("wrapped", realOriginal, "originalStack");
 | |
|         var e = ExceptionHandler.exceptionToString(
 | |
|             new WrappedException("wrappedwrapped", original, "wrappedStack"));
 | |
|         expect(e).toContain("originalStack");
 | |
|       });
 | |
|     });
 | |
|   });
 | |
| }
 |