import { Trace, TraceErrorHandler } from '@nativescript/core'; import * as TKUnit from '../tk-unit'; let cachedErrorHandler: TraceErrorHandler; export function setUpModule() { cachedErrorHandler = Trace.getErrorHandler(); } // before each export function tearDown() { Trace.setErrorHandler(cachedErrorHandler); } export function test_DefaultErrorHandler_throws() { Trace.setErrorHandler(new Trace.DefaultErrorHandler()); TKUnit.assertThrows( () => { Trace.error(new Error('TEST')); }, 'DefaultErrorHandler should throw.', 'TEST' ); } export function test_trace_error_should_call_handler() { let called = false; Trace.setErrorHandler({ handlerError() { called = true; }, }); Trace.error(new Error('TEST')); TKUnit.assert(called, 'Trace.error() should call handler'); } export function test_trace_error_should_create_error_from_string() { let called = false; let actualError: Error; Trace.setErrorHandler({ handlerError(error) { called = true; actualError = error; }, }); Trace.error('TEST'); TKUnit.assert(called, 'Trace.error() should call handler;'); TKUnit.assert(actualError instanceof Error, 'Trace.error() wrap string in error'); } export function test_trace_error_should_pass_errors() { let called = false; let testError = new Error('TEST'); let actualError: Error; Trace.setErrorHandler({ handlerError(error) { called = true; actualError = error; }, }); Trace.error(testError); TKUnit.assert(called, 'Trace.error() should call handler;'); TKUnit.assertDeepEqual(actualError, testError); }