diff --git a/addon/helpers/defaults-to.js b/addon/helpers/defaults-to.js new file mode 100644 index 0000000..1aa37c0 --- /dev/null +++ b/addon/helpers/defaults-to.js @@ -0,0 +1,6 @@ +import { helper } from '@ember/component/helper'; + +export default helper(function defaultsTo(params/*, hash*/) { + let [param, defaultParam] = params; + return param === undefined ? defaultParam : param; +}); diff --git a/addon/templates/components/content-loader.hbs b/addon/templates/components/content-loader.hbs index 44a1698..9836159 100644 --- a/addon/templates/components/content-loader.hbs +++ b/addon/templates/components/content-loader.hbs @@ -1,23 +1,23 @@ {{#if (has-block)}} {{yield}} {{else}} - + {{/if}} diff --git a/app/helpers/defaults-to.js b/app/helpers/defaults-to.js new file mode 100644 index 0000000..d5c8abc --- /dev/null +++ b/app/helpers/defaults-to.js @@ -0,0 +1 @@ +export { default, defaultsTo } from 'ember-content-loader/helpers/defaults-to'; diff --git a/tests/integration/helpers/defaults-to-test.js b/tests/integration/helpers/defaults-to-test.js new file mode 100644 index 0000000..6573716 --- /dev/null +++ b/tests/integration/helpers/defaults-to-test.js @@ -0,0 +1,49 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'ember-qunit'; +import { render } from '@ember/test-helpers'; +import hbs from 'htmlbars-inline-precompile'; + +module('Integration | Helper | defaults-to', function(hooks) { + setupRenderingTest(hooks); + + // Replace this with your real tests. + test('it defaults if undefined', async function(assert) { + this.set('inputValue', undefined); + + await render(hbs`{{defaults-to inputValue '1234'}}`); + + assert.equal(this.element.textContent.trim(), '1234'); + }); + + test('it does not defaults if 0', async function(assert) { + this.set('inputValue', 0); + + await render(hbs`{{defaults-to inputValue '1234'}}`); + + assert.equal(this.element.textContent.trim(), '0'); + }); + + test('it does not defaults if empty string', async function(assert) { + this.set('inputValue', ''); + + await render(hbs`{{defaults-to inputValue '1234'}}`); + + assert.equal(this.element.textContent.trim(), ''); + }); + + test('it does not defaults if null', async function(assert) { + this.set('inputValue', null); + + await render(hbs`{{defaults-to inputValue '1234'}}`); + + assert.equal(this.element.textContent.trim(), ''); + }); + + test('it does not defaults if false', async function(assert) { + this.set('inputValue', false); + + await render(hbs`{{defaults-to inputValue '1234'}}`); + + assert.equal(this.element.textContent.trim(), 'false'); + }); +});