From 576ac192142e5607e709fdd60d307519e7a0f4ce Mon Sep 17 00:00:00 2001 From: Gary Katsevman Date: Wed, 22 Feb 2017 14:00:15 -0500 Subject: [PATCH] fix: addChild instance names should be toTitleCased (#4116) --- src/js/component.js | 2 +- test/unit/component.test.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/js/component.js b/src/js/component.js index 7de0dff0c..1d831a1bb 100644 --- a/src/js/component.js +++ b/src/js/component.js @@ -418,7 +418,7 @@ class Component { // If a name wasn't used to create the component, check if we can use the // name function of the component - componentName = componentName || (component.name && component.name()); + componentName = componentName || (component.name && toTitleCase(component.name())); if (componentName) { this.childNameIndex_[componentName] = component; diff --git a/test/unit/component.test.js b/test/unit/component.test.js index ec1c76d11..00e59f5b3 100644 --- a/test/unit/component.test.js +++ b/test/unit/component.test.js @@ -140,6 +140,19 @@ QUnit.test('addChild should throw if the child does not exist', function(assert) }); +QUnit.test('addChild with instance should allow getting child correctly', function(assert) { + const comp = new Component(getFakePlayer()); + const comp2 = new Component(getFakePlayer()); + + comp2.name = function() { + return 'foo'; + }; + + comp.addChild(comp2); + assert.ok(comp.getChild('foo'), 'we can get child with camelCase'); + assert.ok(comp.getChild('Foo'), 'we can get child with TitleCase'); +}); + QUnit.test('should add a child component with title case name', function(assert) { const comp = new Component(getFakePlayer());