From 41e0466286373a861a4ecb78f11b275ab5cf605a Mon Sep 17 00:00:00 2001 From: Andrej Mihajlov Date: Thu, 23 Oct 2014 15:08:37 +0200 Subject: [PATCH] Add findOne() convenience method on Container --- src/Container.js | 3 +++ test/unit/Container-test.js | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/Container.js b/src/Container.js index baf1190e..a0774739 100644 --- a/src/Container.js +++ b/src/Container.js @@ -179,6 +179,9 @@ return Kinetic.Collection.toCollection(retArr); }, + findOne: function(selector) { + return this.find(selector)[0]; + }, _getNodeById: function(key) { var node = Kinetic.ids[key]; diff --git a/test/unit/Container-test.js b/test/unit/Container-test.js index 8240e337..c390828c 100644 --- a/test/unit/Container-test.js +++ b/test/unit/Container-test.js @@ -1024,6 +1024,21 @@ suite('Container', function() { layer.draw(); }); + // ====================================================== + test('test findOne() selector by quering existing and non-existing nodes by name', function () { + var stage = addStage(); + var layer = new Kinetic.Layer(); + + var rect = new Kinetic.Rect({ + name: 'rect' + }); + + layer.add(rect); + + assert.equal(layer.findOne('.rect'), rect, 'findOne() on existing node must return a single node.'); + assert.equal(layer.findOne('.doesNotExist'), undefined, 'findOne() on non-existing node must return undefined.'); + }); + // ====================================================== test('add layer then shape', function() { var stage = addStage();