From f5593e12e41da5b4f7ffa470f2b8cdb102f884a2 Mon Sep 17 00:00:00 2001 From: Phil Eberhardt Date: Thu, 9 Jul 2015 18:40:56 -0400 Subject: [PATCH 1/2] use merged newData in case where an option already exists when using ArrayAdapter --- src/js/select2/data/array.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/select2/data/array.js b/src/js/select2/data/array.js index 99cd8b09..1c9e1bb2 100644 --- a/src/js/select2/data/array.js +++ b/src/js/select2/data/array.js @@ -54,7 +54,7 @@ define([ var existingData = this.item($existingOption); var newData = $.extend(true, {}, existingData, item); - var $newOption = this.option(existingData); + var $newOption = this.option(newData); $existingOption.replaceWith($newOption); From af212fa530d5ff24ba578e3061ff745113b03ea1 Mon Sep 17 00:00:00 2001 From: Phil Eberhardt Date: Sat, 11 Jul 2015 22:11:55 -0400 Subject: [PATCH 2/2] added test for #3564 fix --- tests/data/array-tests.js | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/data/array-tests.js b/tests/data/array-tests.js index 4107be2d..6096ecfa 100644 --- a/tests/data/array-tests.js +++ b/tests/data/array-tests.js @@ -21,6 +21,21 @@ var arrayOptions = new Options({ ] }); +var extraOptions = new Options ({ + data: [ + { + id: 'default', + text: 'Default', + extra: true + }, + { + id: 'One', + text: 'One', + extra: true + } + ] +}); + var nestedOptions = new Options({ data: [ { @@ -206,6 +221,36 @@ test('option tags are automatically generated', function (assert) { ); }); +test('option tags can receive new data', function(assert) { + var $select = $('#qunit-fixture .single'); + + var data = new ArrayData($select, extraOptions); + + assert.equal( + $select.find('option').length, + 2, + 'Only one more