diff --git a/dev/config.js b/dev/config.js
index da97fc1..8067e4d 100644
--- a/dev/config.js
+++ b/dev/config.js
@@ -122,7 +122,14 @@ module.exports = [
{ "label": "", "value": "" },
{ "label": "Berry", "value": "berry" },
{ "label": "This Option is Selected", "value": "grape" },
- { "label": "Banana", "value": "banana" }
+ { "label": "Banana", "value": "banana" },
+ {
+ "label": "This is an optgroup",
+ "value": [
+ { "label": "Peach", "value": "peach" },
+ { "label": "Mango", "value": "mango" }
+ ]
+ }
],
"attributes": {
"required": "required"
diff --git a/src/templates/components/select.tpl b/src/templates/components/select.tpl
index a721604..60fe0fb 100755
--- a/src/templates/components/select.tpl
+++ b/src/templates/components/select.tpl
@@ -4,7 +4,15 @@
diff --git a/test/spec/components/select.js b/test/spec/components/select.js
index 8ea8b2e..48f8702 100644
--- a/test/spec/components/select.js
+++ b/test/spec/components/select.js
@@ -21,4 +21,26 @@ describe('component - select', function() {
selectItem.set('value-2');
assert.strictEqual($valueDisplay.get('innerHTML'), 'label 2');
});
+
+ it('sets the value display to the correct value on change when using optgroups',
+ function() {
+ var clayConfig = fixture.clayConfig([
+ {
+ type: 'select',
+ defaultValue: 'value-1',
+ options: [
+ { label: 'label 1', value: 'value-1' },
+ { label: 'group', value: [
+ { label: 'label 2', value: 'value-2' },
+ { label: 'label 3', value: 'value-3' }
+ ]}
+ ]
+ }
+ ]);
+ var selectItem = clayConfig.getItemsByType('select')[0];
+ var $valueDisplay = selectItem.$element.select('.value');
+ assert.strictEqual($valueDisplay.get('innerHTML'), 'label 1');
+ selectItem.set('value-2');
+ assert.strictEqual($valueDisplay.get('innerHTML'), 'label 2');
+ });
});