This structure is closer to how ember-cli expects tests to be placed. It is not their final position, just the first step towards it.
88 lines
2.2 KiB
JavaScript
88 lines
2.2 KiB
JavaScript
import I18n from "I18n";
|
|
import componentTest from "helpers/component-test";
|
|
|
|
moduleForComponent("text-field", { integration: true });
|
|
|
|
componentTest("renders correctly with no properties set", {
|
|
template: `{{text-field}}`,
|
|
|
|
test(assert) {
|
|
assert.ok(find("input[type=text]").length);
|
|
},
|
|
});
|
|
|
|
componentTest("support a placeholder", {
|
|
template: `{{text-field placeholderKey="placeholder.i18n.key"}}`,
|
|
|
|
beforeEach() {
|
|
sandbox.stub(I18n, "t").returnsArg(0);
|
|
},
|
|
|
|
test(assert) {
|
|
assert.ok(find("input[type=text]").length);
|
|
assert.equal(find("input").prop("placeholder"), "placeholder.i18n.key");
|
|
},
|
|
});
|
|
|
|
componentTest("sets the dir attribute to ltr for Hebrew text", {
|
|
template: `{{text-field value='זהו שם עברי עם מקום עברי'}}`,
|
|
beforeEach() {
|
|
this.siteSettings.support_mixed_text_direction = true;
|
|
},
|
|
|
|
test(assert) {
|
|
assert.equal(find("input").attr("dir"), "rtl");
|
|
},
|
|
});
|
|
|
|
componentTest("sets the dir attribute to ltr for English text", {
|
|
template: `{{text-field value='This is a ltr title'}}`,
|
|
beforeEach() {
|
|
this.siteSettings.support_mixed_text_direction = true;
|
|
},
|
|
|
|
test(assert) {
|
|
assert.equal(find("input").attr("dir"), "ltr");
|
|
},
|
|
});
|
|
|
|
componentTest("supports onChange", {
|
|
template: `{{text-field class="tf-test" value=value onChange=changed}}`,
|
|
beforeEach() {
|
|
this.called = false;
|
|
this.newValue = null;
|
|
this.set("value", "hello");
|
|
this.set("changed", (v) => {
|
|
this.newValue = v;
|
|
this.called = true;
|
|
});
|
|
},
|
|
async test(assert) {
|
|
await fillIn(".tf-test", "hello");
|
|
assert.ok(!this.called);
|
|
await fillIn(".tf-test", "new text");
|
|
assert.ok(this.called);
|
|
assert.equal(this.newValue, "new text");
|
|
},
|
|
});
|
|
|
|
componentTest("supports onChangeImmediate", {
|
|
template: `{{text-field class="tf-test" value=value onChangeImmediate=changed}}`,
|
|
beforeEach() {
|
|
this.called = false;
|
|
this.newValue = null;
|
|
this.set("value", "old");
|
|
this.set("changed", (v) => {
|
|
this.newValue = v;
|
|
this.called = true;
|
|
});
|
|
},
|
|
async test(assert) {
|
|
await fillIn(".tf-test", "old");
|
|
assert.ok(!this.called);
|
|
await fillIn(".tf-test", "no longer old");
|
|
assert.ok(this.called);
|
|
assert.equal(this.newValue, "no longer old");
|
|
},
|
|
});
|