/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import getComponentFactory from 'consul-ui/utils/dom/get-component-factory'; import { module, test } from 'qunit'; module('Unit | Utility | dom/get component factory', function () { test("it uses lookup to locate the instance of the component based on the DOM element's id", function (assert) { const expected = 'name'; let getComponent = getComponentFactory({ lookup: function () { return { id: expected }; }, }); assert.equal(typeof getComponent, 'function', 'returns a function'); const actual = getComponent({ getAttribute: function (name) { return 'id'; }, }); assert.equal(actual, expected, 'performs a lookup based on the id'); }); test("it returns null if it can't find it", function (assert) { const expected = null; let getComponent = getComponentFactory({ lookup: function () { return { id: '' }; }, }); const actual = getComponent({ getAttribute: function (name) { return 'non-existent'; }, }); assert.equal(actual, expected); }); test('it returns null if there is no id', function (assert) { const expected = null; let getComponent = getComponentFactory({ lookup: function () { return { id: '' }; }, }); const actual = getComponent({ getAttribute: function (name) { return; }, }); assert.equal(actual, expected); }); });