From 9103816eeb3f15cb7015c1e837c59f67b40273f1 Mon Sep 17 00:00:00 2001 From: Johan Holmerin Date: Wed, 28 Jul 2021 15:51:30 +0200 Subject: [PATCH] WIP: support Error#cause Waiting for https://github.com/tc39/proposal-error-cause and https://github.com/whatwg/html/pull/5749 --- tests/error.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/error.js b/tests/error.js index e2e6543..22314ba 100644 --- a/tests/error.js +++ b/tests/error.js @@ -173,4 +173,29 @@ describe("error", function() { expect(clonedError.foo).equal(undefined); }); }); + + describe("cause", function() { + before(function(suite) { + let supportsCause = false; + new Error("", { + get cause() { + supportsCause = true; + } + }); + if (!supportsCause) suite.skip(); + }); + + it("clones error cause", function() { + const error = new Error("test_error", { cause: new Error("cause") }); + const clonedError = structuredClone(error); + + expect(clonedError).not.to.equal(error); + expect(clonedError.cause).not.to.equal(error.cause); + expect(clonedError.cause).to.be.an.instanceOf(Error); + expect(clonedError.cause.constructor).to.equal(error.cause.constructor); + expect(clonedError.cause.message).to.equal(error.cause.message); + expect(clonedError.cause.name).to.equal(error.cause.name); + expect(clonedError.cause.stack).to.equal(error.cause.stack); + }); + }); });