From c93641f8ee441b3d948e47f8f1a8b75ed6d500f7 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Fri, 3 Feb 2017 17:56:31 -0500 Subject: [PATCH] Test for defining a DOM element Breaking test for #145 --- define-test.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/define-test.js b/define-test.js index 872ef37..b6a9353 100644 --- a/define-test.js +++ b/define-test.js @@ -4,6 +4,7 @@ var define = require("can-define"); var stache = require("can-stache"); var CanList = require("can-list"); var canBatch = require("can-event/batch/batch"); +var domDispatch = require("can-util/dom/dispatch/dispatch"); var isArray = require("can-util/js/is-array/is-array"); var each = require("can-util/js/each/each"); var types = require("can-types"); @@ -1504,3 +1505,23 @@ QUnit.test('setter with default value causes an infinite loop (#142)', function( var a = new A(); QUnit.equal(a.val, 'hello', 'creating an instance should not cause an inifinte loop'); }); + +QUnit.test('Works with DOM elements', function(){ + var el = document.createElement('div'); + define(el, { foo: 'string' }); + + var events = 0; + el.addEventListener('foo', function(){ + events++; + }); + + el.addEventListener('some-event', function(){ + events++; + }); + + el.foo = 'bar'; + QUnit.equal(events, 1, 'An event occurred'); + + domDispatch.call(el, "some-event"); + QUnit.equal(events, 2, 'Another event'); +});