From 21f405482ff0307da4d096dbdac9c7020034c1b0 Mon Sep 17 00:00:00 2001 From: bekzod Date: Thu, 5 Oct 2017 18:22:45 +0500 Subject: [PATCH] added tests for `get` with paths --- .../ember-metal/tests/accessors/get_test.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/ember-metal/tests/accessors/get_test.js b/packages/ember-metal/tests/accessors/get_test.js index 086aed20df5..79d28f1926e 100644 --- a/packages/ember-metal/tests/accessors/get_test.js +++ b/packages/ember-metal/tests/accessors/get_test.js @@ -6,6 +6,10 @@ import { observer, addObserver } from '../..'; +import { run } from 'ember-metal'; +import { + Object as EmberObject +} from 'ember-runtime'; QUnit.module('Ember.get'); @@ -85,6 +89,23 @@ QUnit.test('warn on attempts to get a property path of undefined', function() { }, /Cannot call get with 'aProperty.on.aPath' on an undefined object/); }); +QUnit.test("get works with paths correctly", function() { + let func = function() {}; + func.bar = 'awesome'; + + let obj = EmberObject.create({ bar: 'great' }); + run(() => obj.destroy()) + + equal(get({ foo: null }, 'foo.bar'), undefined); + equal(get({ foo: { bar: 'hello' } }, 'foo.bar.length'), 5); + equal(get({ foo: func }, 'foo.bar'), 'awesome'); + equal(get({ foo: func }, 'foo.bar.length'), 7); + equal(get({}, 'foo.bar.length'), undefined); + equal(get(function(){}, 'foo.bar.length'), undefined); + equal(get('', 'foo.bar.length'), undefined); + equal(get({ foo: obj }, 'foo.bar'), undefined); +}); + QUnit.test('warn on attempts to get a property of null', function() { expectAssertion(function() { get(null, 'aProperty');