mirror of
https://github.com/discourse/discourse.git
synced 2024-11-28 00:44:12 +08:00
77 lines
2.1 KiB
JavaScript
77 lines
2.1 KiB
JavaScript
import componentTest from "helpers/component-test";
|
|
moduleForComponent("value-list", { integration: true });
|
|
|
|
componentTest("functionality", {
|
|
template: '{{value-list values=values inputType="array"}}',
|
|
test(assert) {
|
|
assert.ok(this.$(".values .value").length === 0, "it has no values");
|
|
assert.ok(this.$("input").length, "it renders the input");
|
|
assert.ok(
|
|
this.$(".btn-primary[disabled]").length,
|
|
"it is disabled with no value"
|
|
);
|
|
|
|
fillIn("input", "eviltrout");
|
|
andThen(() => {
|
|
assert.ok(
|
|
!this.$(".btn-primary[disabled]").length,
|
|
"it isn't disabled anymore"
|
|
);
|
|
});
|
|
|
|
click(".btn-primary");
|
|
andThen(() => {
|
|
assert.equal(this.$(".values .value").length, 1, "it adds the value");
|
|
assert.equal(this.$("input").val(), "", "it clears the input");
|
|
assert.ok(
|
|
this.$(".btn-primary[disabled]").length,
|
|
"it is disabled again"
|
|
);
|
|
assert.equal(this.get("values"), "eviltrout", "it appends the value");
|
|
});
|
|
|
|
click(".value .btn-small");
|
|
andThen(() => {
|
|
assert.ok(this.$(".values .value").length === 0, "it removes the value");
|
|
});
|
|
}
|
|
});
|
|
|
|
componentTest("with string delimited values", {
|
|
template: "{{value-list values=valueString}}",
|
|
beforeEach() {
|
|
this.set("valueString", "hello\nworld");
|
|
},
|
|
|
|
test(assert) {
|
|
assert.equal(this.$(".values .value").length, 2);
|
|
|
|
fillIn("input", "eviltrout");
|
|
click(".btn-primary");
|
|
|
|
andThen(() => {
|
|
assert.equal(this.$(".values .value").length, 3);
|
|
assert.equal(this.get("valueString"), "hello\nworld\neviltrout");
|
|
});
|
|
}
|
|
});
|
|
|
|
componentTest("with array values", {
|
|
template: '{{value-list values=valueArray inputType="array"}}',
|
|
beforeEach() {
|
|
this.set("valueArray", ["abc", "def"]);
|
|
},
|
|
|
|
test(assert) {
|
|
assert.equal(this.$(".values .value").length, 2);
|
|
|
|
fillIn("input", "eviltrout");
|
|
click(".btn-primary");
|
|
|
|
andThen(() => {
|
|
assert.equal(this.$(".values .value").length, 3);
|
|
assert.deepEqual(this.get("valueArray"), ["abc", "def", "eviltrout"]);
|
|
});
|
|
}
|
|
});
|