diff --git a/ui/app/helpers/is-empty-object.js b/ui/app/helpers/is-empty-object.js deleted file mode 100644 index 962f3722b4..0000000000 --- a/ui/app/helpers/is-empty-object.js +++ /dev/null @@ -1,5 +0,0 @@ -import { helper } from '@ember/component/helper'; - -export default helper(function isEmptyObject([object] /*, hash*/) { - return Object.keys(object).length === 0; -}); diff --git a/ui/app/helpers/is-empty-value.js b/ui/app/helpers/is-empty-value.js new file mode 100644 index 0000000000..2c43bdd99b --- /dev/null +++ b/ui/app/helpers/is-empty-value.js @@ -0,0 +1,8 @@ +import { helper } from '@ember/component/helper'; + +export default helper(function isEmptyValue([value] /*, hash*/) { + if (typeof value === 'object' && value !== null) { + return Object.keys(value).length === 0; + } + return value == null || value === ''; +}); diff --git a/ui/app/templates/components/auth-method/configuration.hbs b/ui/app/templates/components/auth-method/configuration.hbs index 5a6a299b7a..a56d2a760b 100644 --- a/ui/app/templates/components/auth-method/configuration.hbs +++ b/ui/app/templates/components/auth-method/configuration.hbs @@ -1,9 +1,9 @@
{{#each @model.attrs as |attr|}} {{#if (eq attr.type "object")}} - + {{else}} - + {{/if}} {{/each}}
diff --git a/ui/app/templates/components/database-role-edit.hbs b/ui/app/templates/components/database-role-edit.hbs index 4dd25ed2e5..fd512439b9 100644 --- a/ui/app/templates/components/database-role-edit.hbs +++ b/ui/app/templates/components/database-role-edit.hbs @@ -101,7 +101,7 @@
- {{#if (is-empty-object this.warningMessages)}} + {{#if (is-empty-value this.warningMessages)}}
diff --git a/ui/tests/integration/helpers/is-empty-object-test.js b/ui/tests/integration/helpers/is-empty-object-test.js deleted file mode 100644 index eef4aa3bce..0000000000 --- a/ui/tests/integration/helpers/is-empty-object-test.js +++ /dev/null @@ -1,39 +0,0 @@ -import { module, test } from 'qunit'; -import { setupRenderingTest } from 'ember-qunit'; -import { render } from '@ember/test-helpers'; -import { hbs } from 'ember-cli-htmlbars'; - -const emptyObject = {}; - -const nonEmptyObject = { thing: 0 }; - -module('Integration | Helper | is-empty-object', function(hooks) { - setupRenderingTest(hooks); - - test('it is truthy if the object evaluated is an empty object', async function(assert) { - this.set('inputValue', emptyObject); - - await render(hbs` - {{#if (is-empty-object inputValue)}} - Empty - {{else}} - Full - {{/if}} - `); - - assert.equal(this.element.textContent.trim(), 'Empty'); - }); - test('it is falsy if the object evaluated is not an empty object', async function(assert) { - this.set('inputValue', nonEmptyObject); - - await render(hbs` - {{#if (is-empty-object inputValue)}} - Empty - {{else}} - Full - {{/if}} - `); - - assert.equal(this.element.textContent.trim(), 'Full'); - }); -}); diff --git a/ui/tests/integration/helpers/is-empty-value-test.js b/ui/tests/integration/helpers/is-empty-value-test.js new file mode 100644 index 0000000000..e3a340b29c --- /dev/null +++ b/ui/tests/integration/helpers/is-empty-value-test.js @@ -0,0 +1,51 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'ember-qunit'; +import { render } from '@ember/test-helpers'; +import { hbs } from 'ember-cli-htmlbars'; + +const template = hbs` +{{#if (is-empty-value inputValue)}} +Empty +{{else}} +Full +{{/if}} +`; + +const emptyObject = {}; + +const nonEmptyObject = { thing: 0 }; + +module('Integration | Helper | is-empty-value', function(hooks) { + setupRenderingTest(hooks); + + test('it is truthy if the value evaluated is undefined', async function(assert) { + this.set('inputValue', undefined); + + await render(template); + + assert.equal(this.element.textContent.trim(), 'Empty'); + }); + + test('it is truthy if the value evaluated is an empty string', async function(assert) { + this.set('inputValue', ''); + + await render(template); + + assert.equal(this.element.textContent.trim(), 'Empty'); + }); + + test('it is truthy if the value evaluated is an empty object', async function(assert) { + this.set('inputValue', emptyObject); + + await render(template); + + assert.equal(this.element.textContent.trim(), 'Empty'); + }); + test('it is falsy if the value evaluated is not an empty object', async function(assert) { + this.set('inputValue', nonEmptyObject); + + await render(template); + + assert.equal(this.element.textContent.trim(), 'Full'); + }); +});