diff options
Diffstat (limited to 'test_napi/error_test.js')
-rw-r--r-- | test_napi/error_test.js | 215 |
1 files changed, 0 insertions, 215 deletions
diff --git a/test_napi/error_test.js b/test_napi/error_test.js deleted file mode 100644 index 57acde5c1..000000000 --- a/test_napi/error_test.js +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import { - assert, - assertEquals, - assertThrows, - loadTestLibrary, -} from "./common.js"; - -const testError = loadTestLibrary(); - -const theError = new Error("Some error"); -const theTypeError = new TypeError("Some type error"); -const theSyntaxError = new SyntaxError("Some syntax error"); -const theRangeError = new RangeError("Some type error"); -const theReferenceError = new ReferenceError("Some reference error"); -const theURIError = new URIError("Some URI error"); -const theEvalError = new EvalError("Some eval error"); - -function assertThrowsWithCode(fn, value) { - let thrown = false; - - try { - fn(); - } catch (e) { - thrown = true; - assertEquals(e.message, value.message); - assertEquals(e.code, value.code); - } finally { - assert(thrown); - } -} - -Deno.test("napi error", function () { - class MyError extends Error {} - const myError = new MyError("Some MyError"); - - // Test that native error object is correctly classed - assertEquals(testError.checkError(theError), true); - - // Test that native type error object is correctly classed - assertEquals(testError.checkError(theTypeError), true); - - // Test that native syntax error object is correctly classed - assertEquals(testError.checkError(theSyntaxError), true); - - // Test that native range error object is correctly classed - assertEquals(testError.checkError(theRangeError), true); - - // Test that native reference error object is correctly classed - assertEquals(testError.checkError(theReferenceError), true); - - // Test that native URI error object is correctly classed - assertEquals(testError.checkError(theURIError), true); - - // Test that native eval error object is correctly classed - assertEquals(testError.checkError(theEvalError), true); - - // Test that class derived from native error is correctly classed - assertEquals(testError.checkError(myError), true); - - // Test that non-error object is correctly classed - assertEquals(testError.checkError({}), false); - - // Test that non-error primitive is correctly classed - assertEquals(testError.checkError("non-object"), false); - - assertThrows( - () => { - testError.throwExistingError(); - }, - Error, - "existing error", - ); - - assertThrows( - () => { - testError.throwError(); - }, - Error, - "error", - ); - - assertThrows( - () => { - testError.throwRangeError(); - }, - RangeError, - "range error", - ); - - assertThrows( - () => { - testError.throwTypeError(); - }, - TypeError, - "type error", - ); - - // assertThrows(() => { - // testError.throwSyntaxError(); - // }, "SyntaxError: syntax error"); - - [42, {}, [], Symbol("xyzzy"), true, "ball", undefined, null, NaN] - .forEach((value) => { - let thrown = false; - - try { - testError.throwArbitrary(value); - } catch (e) { - thrown = true; - assertEquals(e, value); - } finally { - assert(thrown); - } - }); - - assertThrowsWithCode( - () => testError.throwErrorCode(), - { - code: "ERR_TEST_CODE", - message: "Error [error]", - }, - ); - - assertThrowsWithCode( - () => testError.throwRangeErrorCode(), - { - code: "ERR_TEST_CODE", - message: "RangeError [range error]", - }, - ); - - assertThrowsWithCode( - () => testError.throwTypeErrorCode(), - { - code: "ERR_TEST_CODE", - message: "TypeError [type error]", - }, - ); - - // assertThrowsWithCode( - // () => testError.throwSyntaxErrorCode(), - // { - // code: "ERR_TEST_CODE", - // message: "SyntaxError [syntax error]", - // }, - // ); - - let error = testError.createError(); - assert( - error instanceof Error, - "expected error to be an instance of Error", - ); - assertEquals(error.message, "error"); - - error = testError.createRangeError(); - assert( - error instanceof RangeError, - "expected error to be an instance of RangeError", - ); - assertEquals(error.message, "range error"); - - error = testError.createTypeError(); - assert( - error instanceof TypeError, - "expected error to be an instance of TypeError", - ); - assertEquals(error.message, "type error"); - - // TODO(bartlomieju): this is experimental API - // error = testError.createSyntaxError(); - // assert( - // error instanceof SyntaxError, - // "expected error to be an instance of SyntaxError", - // ); - // assertEquals(error.message, "syntax error"); - - error = testError.createErrorCode(); - assert( - error instanceof Error, - "expected error to be an instance of Error", - ); - assertEquals(error.code, "ERR_TEST_CODE"); - assertEquals(error.message, "Error [error]"); - assertEquals(error.name, "Error"); - - error = testError.createRangeErrorCode(); - assert( - error instanceof RangeError, - "expected error to be an instance of RangeError", - ); - assertEquals(error.message, "RangeError [range error]"); - assertEquals(error.code, "ERR_TEST_CODE"); - assertEquals(error.name, "RangeError"); - - error = testError.createTypeErrorCode(); - assert( - error instanceof TypeError, - "expected error to be an instance of TypeError", - ); - assertEquals(error.message, "TypeError [type error]"); - assertEquals(error.code, "ERR_TEST_CODE"); - assertEquals(error.name, "TypeError"); - - // TODO(bartlomieju): this is experimental API - // error = testError.createSyntaxErrorCode(); - // assert( - // error instanceof SyntaxError, - // "expected error to be an instance of SyntaxError", - // ); - // assertEquals(error.message, "SyntaxError [syntax error]"); - // assertEquals(error.code, "ERR_TEST_CODE"); - // assertEquals(error.name, "SyntaxError"); -}); |