50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
import { moduleForComponent, test } from 'ember-qunit';
|
|
import hbs from 'htmlbars-inline-precompile';
|
|
|
|
moduleForComponent('phrase-editor', 'Integration | Component | phrase editor', {
|
|
integration: true,
|
|
});
|
|
|
|
test('it renders a phrase', function(assert) {
|
|
this.set('value', ['phrase']);
|
|
this.render(hbs`{{phrase-editor value=value}}`);
|
|
assert.notEqual(
|
|
this.$()
|
|
.text()
|
|
.trim()
|
|
.indexOf('phrase'),
|
|
-1
|
|
);
|
|
});
|
|
test('it calls onchange when a phrase is removed by clicking the phrase remove button and refocuses', function(assert) {
|
|
assert.expect(3);
|
|
this.set('value', ['phrase']);
|
|
this.on('change', function(e) {
|
|
assert.equal(e.target.value.length, 0);
|
|
});
|
|
this.render(hbs`{{phrase-editor value=value onchange=(action 'change')}}`);
|
|
assert.notEqual(
|
|
this.$()
|
|
.text()
|
|
.trim()
|
|
.indexOf('phrase'),
|
|
-1
|
|
);
|
|
const $input = this.$('input');
|
|
const $button = this.$('button');
|
|
$button.trigger('click');
|
|
assert.equal(document.activeElement, $input.get(0));
|
|
});
|
|
test('it calls onchange when a phrase is added', function(assert) {
|
|
assert.expect(1);
|
|
this.on('change', function(e) {
|
|
assert.equal(e.target.value.length, 2);
|
|
});
|
|
this.set('value', ['phrase']);
|
|
this.render(hbs`{{phrase-editor value=value onchange=(action 'change')}}`);
|
|
const $input = this.$('input');
|
|
$input.get(0).value = 'phrase 2';
|
|
$input.trigger('input');
|
|
$input.trigger('search');
|
|
});
|