From 210627ba24378ab1ef750abdc9c566bca523f828 Mon Sep 17 00:00:00 2001 From: Duarte Henriques Date: Thu, 12 Apr 2018 16:02:09 +0100 Subject: [PATCH] Support no-name traits --- src/dom_components/model/Component.js | 5 +++-- test/specs/dom_components/model/Component.js | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/dom_components/model/Component.js b/src/dom_components/model/Component.js index 77304b691..a2a9f9308 100644 --- a/src/dom_components/model/Component.js +++ b/src/dom_components/model/Component.js @@ -513,9 +513,10 @@ const Component = Backbone.Model.extend(Styleable).extend( traits.each(trait => { found = 1; if (!trait.get('changeProp')) { + const name = trait.get('name'); const value = trait.getInitValue(); - if (value) { - attrs[trait.get('name')] = value; + if (name && value) { + attrs[name] = value; } } }); diff --git a/test/specs/dom_components/model/Component.js b/test/specs/dom_components/model/Component.js index ae5da0f8e..c3ced43f3 100644 --- a/test/specs/dom_components/model/Component.js +++ b/test/specs/dom_components/model/Component.js @@ -67,6 +67,21 @@ module.exports = { expect(obj.get('stylable')).toEqual(true); }); + it('Sets attributes correctly from traits', () => { + obj.set('traits', [ + { + label: 'Title', + name: 'title', + value: 'The title' + }, + { + label: 'Context', + value: 'primary' + } + ]); + expect(obj.get('attributes')).toEqual({ title: 'The title' }); + }); + it('Has expected name', () => { expect(obj.getName()).toEqual('Box'); });