diff --git a/addon/components/hyper-table/cell-renderers/link.hbs b/addon/components/hyper-table/cell-renderers/link.hbs index 5c7945a8..bf2f88c4 100644 --- a/addon/components/hyper-table/cell-renderers/link.hbs +++ b/addon/components/hyper-table/cell-renderers/link.hbs @@ -8,7 +8,7 @@ class="upf-link--reset link__value" onclick="event.stopPropagation();" > - {{value}} + {{this.value}} {{#if (and this.editStatus.status (not this.isSuccess))}}
- {{input - type="number" - focus-out=(action "toggleEditing" this.editableValue) - insert-newline=(action "toggleEditing" this.editableValue) - value=this.value +
{{else}}
diff --git a/addon/components/hyper-table/cell-renderers/text.hbs b/addon/components/hyper-table/cell-renderers/text.hbs index 35f77a8c..cfbebfbe 100644 --- a/addon/components/hyper-table/cell-renderers/text.hbs +++ b/addon/components/hyper-table/cell-renderers/text.hbs @@ -11,13 +11,14 @@ {{#if this.isUpsertable}}
- {{input - type="text" - value=this.editableValue +
{{this.editableValue}} diff --git a/tests/integration/components/hyper-table/cell-renderers/link-test.ts b/tests/integration/components/hyper-table/cell-renderers/link-test.ts new file mode 100644 index 00000000..a201404a --- /dev/null +++ b/tests/integration/components/hyper-table/cell-renderers/link-test.ts @@ -0,0 +1,44 @@ +import { A } from '@ember/array'; +import EmberObject from '@ember/object'; +import { render, type TestContext } from '@ember/test-helpers'; + +import { hbs } from 'ember-cli-htmlbars'; +import { setupRenderingTest } from 'ember-qunit'; +import { module, test } from 'qunit'; + +module('Integration | Component | hyper-table/cell-renderers/link', function (hooks) { + setupRenderingTest(hooks); + + test('it renders a link value', async function (this: TestContext, assert) { + this.item = EmberObject.create({ website: 'https://example.com' }); + this.column = EmberObject.create({ key: 'website', field: EmberObject.create({}) }); + this.manager = EmberObject.create({ editStatus: A([]) }); + + await render( + hbs`` + ); + + assert.dom('a.link__value').hasAttribute('href', 'https://example.com'); + assert.dom('a.link__value').hasText('https://example.com'); + }); + + test('it renders a default when the value is empty', async function (this: TestContext, assert) { + this.item = EmberObject.create({ website: null }); + this.column = EmberObject.create({ key: 'website', field: EmberObject.create({}) }); + this.manager = EmberObject.create({ editStatus: A([]) }); + + await render( + hbs`` + ); + + assert.dom().hasText('—'); + }); +}); diff --git a/tests/integration/components/hyper-table/cell-renderers/numeric-test.ts b/tests/integration/components/hyper-table/cell-renderers/numeric-test.ts new file mode 100644 index 00000000..0fbd9ef4 --- /dev/null +++ b/tests/integration/components/hyper-table/cell-renderers/numeric-test.ts @@ -0,0 +1,43 @@ +import { A } from '@ember/array'; +import EmberObject from '@ember/object'; +import { render, type TestContext } from '@ember/test-helpers'; + +import { hbs } from 'ember-cli-htmlbars'; +import { setupRenderingTest } from 'ember-qunit'; +import { module, test } from 'qunit'; + +module('Integration | Component | hyper-table/cell-renderers/numeric', function (hooks) { + setupRenderingTest(hooks); + + test('it renders a value', async function (this: TestContext, assert) { + this.item = EmberObject.create({ total: 123 }); + this.column = EmberObject.create({ key: 'total', field: EmberObject.create({}), upsertable: false }); + this.manager = EmberObject.create({ editStatus: A([]) }); + + await render( + hbs`` + ); + + assert.dom('.text-value').hasText('123'); + }); + + test('it renders a default when the value is empty', async function (this: TestContext, assert) { + this.item = EmberObject.create({ total: null }); + this.column = EmberObject.create({ key: 'total', field: EmberObject.create({}), upsertable: false }); + this.manager = EmberObject.create({ editStatus: A([]) }); + + await render( + hbs`` + ); + + assert.dom().hasText('—'); + }); +}); diff --git a/tests/integration/components/hyper-table/cell-renderers/text-test.ts b/tests/integration/components/hyper-table/cell-renderers/text-test.ts new file mode 100644 index 00000000..6bb902b1 --- /dev/null +++ b/tests/integration/components/hyper-table/cell-renderers/text-test.ts @@ -0,0 +1,43 @@ +import { A } from '@ember/array'; +import EmberObject from '@ember/object'; +import { render, type TestContext } from '@ember/test-helpers'; + +import { hbs } from 'ember-cli-htmlbars'; +import { setupRenderingTest } from 'ember-qunit'; +import { module, test } from 'qunit'; + +module('Integration | Component | hyper-table/cell-renderers/text', function (hooks) { + setupRenderingTest(hooks); + + test('it renders a value', async function (this: TestContext, assert) { + this.item = EmberObject.create({ name: 'FooBar' }); + this.column = EmberObject.create({ key: 'name', field: EmberObject.create({}), upsertable: false }); + this.manager = EmberObject.create({ editStatus: A([]) }); + + await render( + hbs`` + ); + + assert.dom('.text-value').hasText('FooBar'); + }); + + test('it renders a default when the value is empty', async function (this: TestContext, assert) { + this.item = EmberObject.create({ name: null }); + this.column = EmberObject.create({ key: 'name', field: EmberObject.create({}), upsertable: false }); + this.manager = EmberObject.create({ editStatus: A([]) }); + + await render( + hbs`` + ); + + assert.dom().hasText('—'); + }); +});