From e60ab22a85a1d2bcc50092216a9410fbe490b99a Mon Sep 17 00:00:00 2001 From: Stretch Date: Wed, 10 Jun 2015 20:05:07 +1000 Subject: [PATCH] Adding single select support and testing --- src/js/select2/selection/single.js | 8 ++++---- tests/selection/multiple-tests.js | 2 +- tests/selection/single-tests.js | 29 +++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/js/select2/selection/single.js b/src/js/select2/selection/single.js index 1f4323dd..2e2181f9 100644 --- a/src/js/select2/selection/single.js +++ b/src/js/select2/selection/single.js @@ -63,11 +63,11 @@ define([ this.$selection.find('.select2-selection__rendered').empty(); }; - SingleSelection.prototype.display = function (data) { + SingleSelection.prototype.display = function (data, container) { var template = this.options.get('templateSelection'); var escapeMarkup = this.options.get('escapeMarkup'); - return escapeMarkup(template(data)); + return escapeMarkup(template(data, container)); }; SingleSelection.prototype.selectionContainer = function () { @@ -82,9 +82,9 @@ define([ var selection = data[0]; - var formatted = this.display(selection); - var $rendered = this.$selection.find('.select2-selection__rendered'); + var formatted = this.display(selection, $rendered); + $rendered.empty().append(formatted); $rendered.prop('title', selection.title || selection.text); }; diff --git a/tests/selection/multiple-tests.js b/tests/selection/multiple-tests.js index 9db13da6..8efe39ea 100644 --- a/tests/selection/multiple-tests.js +++ b/tests/selection/multiple-tests.js @@ -34,7 +34,7 @@ test('display uses templateSelection', function (assert) { }); test('templateSelection can addClass', function (assert) { - var called = false, found = false; + var called = false; var templateOptions = new Options({ templateSelection: function (data, container) { diff --git a/tests/selection/single-tests.js b/tests/selection/single-tests.js index 3382336d..2731b2a5 100644 --- a/tests/selection/single-tests.js +++ b/tests/selection/single-tests.js @@ -33,6 +33,35 @@ test('display uses templateSelection', function (assert) { assert.equal(out, 'test'); }); +test('templateSelection can addClass', function (assert) { + var called = false; + + var templateOptions = new Options({ + templateSelection: function (data, container) { + called = true; + container.addClass('testclass'); + return data.text; + } + }); + + var selection = new SingleSelection( + $('#qunit-fixture .single'), + templateOptions + ); + + var $container = selection.selectionContainer(); + + var out = selection.display({ + text: 'test' + }, $container); + + assert.ok(called); + + assert.equal(out, 'test'); + + assert.ok($container.hasClass('testclass')); +}); + test('empty update clears the selection', function (assert) { var selection = new SingleSelection( $('#qunit-fixture .single'),