datahub/datahub-web/@datahub/utils/tests/integration/components/radio-button-composer-test.ts
2019-08-31 20:51:14 -07:00

46 lines
1.6 KiB
TypeScript

import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render, findAll, triggerEvent } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';
module('Integration | Component | radio-button-composer', function(hooks) {
setupRenderingTest(hooks);
const disabledClass = 'paralyzed-pikachu';
test('decorated properties behave as expected', async function(assert) {
this.setProperties({
disabledClass,
value: 'electrify',
mouseEnter() {
assert.ok(true, 'Function got called on mouseEnter');
}
});
await render(hbs`{{#radio-button-composer
disabledClass=disabledClass
name="testA"
groupValue="groupA"
value=value
onMouseEnter=mouseEnter}}
{{value}}
{{/radio-button-composer}}`);
// Ensures the function assert was called.
assert.expect(4);
assert.equal(this.element.textContent!.trim(), 'electrify', 'renders expected value');
assert.equal(findAll(`.${disabledClass}`).length, 0, 'Does not disable when not supposed to');
await triggerEvent('span', 'mouseover');
await render(hbs`{{radio-button-composer
disabledClass=disabledClass
name="testB"
groupValue="groupB"
value=value
onMouseEnter=mouseEnter
disabled=true}}`);
assert.equal(findAll(`.${disabledClass}`).length, 1, 'Renders the disabled class');
});
});