From 97f89bd61cd1bbfc3d3f8ad8cf62e7523ee08b03 Mon Sep 17 00:00:00 2001 From: Bradley Momberger Date: Wed, 30 Aug 2017 20:03:42 -0400 Subject: [PATCH] Improve warning message for get-with-no-set condition --- can-define.js | 3 ++- define-test.js | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/can-define.js b/can-define.js index 4c9e849..6d683e0 100644 --- a/can-define.js +++ b/can-define.js @@ -262,8 +262,9 @@ define.property = function(objPrototype, prop, definition, dataInitializers, com // If there's zero-arg `get` but not `set`, warn on all sets in dev mode else if (definition.get.length < 1) { setter = function() { - dev.warn("Set value for property " + + dev.warn("can-define: Set value for property " + prop + + (objPrototype.constructor.shortName ? " on " + objPrototype.constructor.shortName : "") + " ignored, as its definition has a zero-argument getter and no setter"); }; } diff --git a/define-test.js b/define-test.js index f6c76e2..0188590 100644 --- a/define-test.js +++ b/define-test.js @@ -1372,7 +1372,7 @@ QUnit.test('define() should add a CID (#246)', function() { if(System.env.indexOf("production") < 0) { QUnit.test('Setting a value with only a get() generates a warning (#202)', function() { - QUnit.expect(2); + QUnit.expect(3); var VM = function() {}; define(VM.prototype, { derivedProp: { @@ -1389,12 +1389,22 @@ if(System.env.indexOf("production") < 0) { canDev.warn = function(mesg) { QUnit.equal( mesg, - "Set value for property derivedProp ignored, as its definition has a zero-argument getter and no setter", + "can-define: Set value for property derivedProp ignored, as its definition has a zero-argument getter and no setter", "Warning is expected message"); }; vm.derivedProp = 'prop is set'; QUnit.equal(vm.derivedProp, "Hello World", "Getter value is preserved"); + + VM.shortName = "VM"; + canDev.warn = function(mesg) { + QUnit.equal( + mesg, + "can-define: Set value for property derivedProp on VM ignored, as its definition has a zero-argument getter and no setter", + "Warning is expected message"); + }; + + vm.derivedProp = 'prop is set'; canDev.warn = oldwarn; }); } \ No newline at end of file