From 7ef83913b6c61fcb19a2dba4f73d00d2743c417e Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 5 Aug 2015 16:19:21 -0400 Subject: [PATCH] FIX: Couldn't select values of 0 in the combo-box --- .../discourse/components/combo-box.js.es6 | 3 ++- test/javascripts/components/combo-box-test.js.es6 | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/components/combo-box.js.es6 b/app/assets/javascripts/discourse/components/combo-box.js.es6 index d74410e89b5..fdda11db1a0 100644 --- a/app/assets/javascripts/discourse/components/combo-box.js.es6 +++ b/app/assets/javascripts/discourse/components/combo-box.js.es6 @@ -32,7 +32,8 @@ export default Ember.Component.extend({ if (this.get('content')) { const self = this; this.get('content').forEach(function(o) { - let val = o[self.get('valueAttribute')] || o; + let val = o[self.get('valueAttribute')]; + if (typeof val === "undefined") { val = o; } if (!Em.isNone(val)) { val = val.toString(); } const selectedText = (val === selected) ? "selected" : ""; diff --git a/test/javascripts/components/combo-box-test.js.es6 b/test/javascripts/components/combo-box-test.js.es6 index 4badfcd1a61..174905548eb 100644 --- a/test/javascripts/components/combo-box-test.js.es6 +++ b/test/javascripts/components/combo-box-test.js.es6 @@ -15,6 +15,19 @@ componentTest('with objects', { } }); +componentTest('with objects and valueAttribute', { + template: '{{combo-box content=items valueAttribute="value"}}', + setup() { + this.set('items', [{value: 0, name: 'hello'}, {value: 1, name: 'world'}]); + }, + + test(assert) { + assert.ok(this.$('.combobox').length); + assert.equal(this.$("select option[value='0']").text(), 'hello'); + assert.equal(this.$("select option[value='1']").text(), 'world'); + } +}); + componentTest('with an array', { template: '{{combo-box content=items value=value}}', setup() {