From e82414776086bb5fd3001ba7c990b6a9c20e7b98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Hilles=C3=B6?= Date: Tue, 14 Jan 2025 10:18:17 +0100 Subject: [PATCH] Add test for event listeners on cloneNode --- lib/Element.js | 1 - test/elements-test.js | 10 +++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/Element.js b/lib/Element.js index dbc8402..ce1e5b2 100644 --- a/lib/Element.js +++ b/lib/Element.js @@ -396,7 +396,6 @@ module.exports = class Element extends Node { } cloneNode(deep) { const $clone = this.$elm.clone(); - // TODO check for event listeners, should be empty on $clone if (!deep) { $clone.empty(); } diff --git a/test/elements-test.js b/test/elements-test.js index 3963f23..a8b72ff 100644 --- a/test/elements-test.js +++ b/test/elements-test.js @@ -6,7 +6,6 @@ const HTMLAnchorElement = require("../lib/HTMLAnchorElement.js"); const HTMLFormElement = require("../lib/HTMLFormElement.js"); const { Document } = require("../lib/index.js"); const { Event } = require("../lib/Events.js"); -const { expect } = require("chai"); const elementProperties = [ "children", @@ -1489,6 +1488,15 @@ describe("elements", () => { expect(elmCloneChild === elmChild).to.be.false; }); + + it("returns a clone without event listerners", () => { + const elm = document.getElementsByClassName("block")[0]; + let clicked = false; + elm.addEventListener("click", () => (clicked = true)); + const elmClone = elm.cloneNode(true); + elmClone.click(); + expect(clicked).to.be.false; + }); }); describe("video element", () => {