2018-06-15 23:03:24 +08:00
|
|
|
import componentTest from "helpers/component-test";
|
|
|
|
moduleForComponent("d-button", { integration: true });
|
2017-08-02 03:33:31 +08:00
|
|
|
|
2018-06-15 23:03:24 +08:00
|
|
|
componentTest("icon only button", {
|
2017-08-02 04:06:51 +08:00
|
|
|
template: '{{d-button icon="plus" tabindex="3"}}',
|
2017-08-02 03:33:31 +08:00
|
|
|
|
|
|
|
test(assert) {
|
2018-06-15 23:03:24 +08:00
|
|
|
assert.ok(
|
2019-02-25 23:04:55 +08:00
|
|
|
find("button.btn.btn-icon.no-text").length,
|
2018-06-15 23:03:24 +08:00
|
|
|
"it has all the classes"
|
|
|
|
);
|
2019-02-25 23:04:55 +08:00
|
|
|
assert.ok(find("button .d-icon.d-icon-plus").length, "it has the icon");
|
|
|
|
assert.equal(find("button").attr("tabindex"), "3", "it has the tabindex");
|
2017-08-02 03:33:31 +08:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 23:03:24 +08:00
|
|
|
componentTest("icon and text button", {
|
2017-08-02 03:33:31 +08:00
|
|
|
template: '{{d-button icon="plus" label="topic.create"}}',
|
|
|
|
|
|
|
|
test(assert) {
|
2018-06-15 23:03:24 +08:00
|
|
|
assert.ok(
|
2019-02-25 23:04:55 +08:00
|
|
|
find("button.btn.btn-icon-text").length,
|
2018-06-15 23:03:24 +08:00
|
|
|
"it has all the classes"
|
|
|
|
);
|
2019-02-25 23:04:55 +08:00
|
|
|
assert.ok(find("button .d-icon.d-icon-plus").length, "it has the icon");
|
|
|
|
assert.ok(find("button span.d-button-label").length, "it has the label");
|
2017-08-02 03:33:31 +08:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 23:03:24 +08:00
|
|
|
componentTest("text only button", {
|
2017-08-02 03:33:31 +08:00
|
|
|
template: '{{d-button label="topic.create"}}',
|
|
|
|
|
|
|
|
test(assert) {
|
2019-02-25 23:04:55 +08:00
|
|
|
assert.ok(find("button.btn.btn-text").length, "it has all the classes");
|
|
|
|
assert.ok(find("button span.d-button-label").length, "it has the label");
|
2017-08-02 03:33:31 +08:00
|
|
|
}
|
|
|
|
});
|
2019-02-25 16:49:49 +08:00
|
|
|
|
|
|
|
componentTest("form attribute", {
|
|
|
|
template: '{{d-button form="login-form"}}',
|
|
|
|
|
|
|
|
test(assert) {
|
|
|
|
assert.ok(exists("button[form=login-form]"), "it has the form attribute");
|
|
|
|
}
|
|
|
|
});
|
2019-11-01 03:36:24 +08:00
|
|
|
|
|
|
|
componentTest("link-styled button", {
|
|
|
|
template: '{{d-button display="link"}}',
|
|
|
|
|
|
|
|
test(assert) {
|
|
|
|
assert.ok(
|
|
|
|
find("button.btn-link:not(.btn)").length,
|
|
|
|
"it has the right classes"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
});
|
2020-03-31 05:17:00 +08:00
|
|
|
|
|
|
|
componentTest("isLoading button", {
|
|
|
|
template: "{{d-button isLoading=isLoading}}",
|
|
|
|
|
|
|
|
beforeEach() {
|
|
|
|
this.set("isLoading", true);
|
|
|
|
},
|
|
|
|
|
|
|
|
test(assert) {
|
|
|
|
assert.ok(
|
2020-03-31 05:42:21 +08:00
|
|
|
find("button.is-loading .loading-icon").length,
|
2020-03-31 05:17:00 +08:00
|
|
|
"it has a spinner showing"
|
|
|
|
);
|
|
|
|
assert.ok(
|
|
|
|
find("button[disabled]").length,
|
|
|
|
"while loading the button is disabled"
|
|
|
|
);
|
|
|
|
|
|
|
|
this.set("isLoading", false);
|
|
|
|
|
|
|
|
assert.notOk(
|
2020-03-31 05:42:21 +08:00
|
|
|
find("button .loading-icon").length,
|
2020-03-31 05:17:00 +08:00
|
|
|
"it doesn't have a spinner showing"
|
|
|
|
);
|
|
|
|
assert.ok(
|
|
|
|
find("button:not([disabled])").length,
|
|
|
|
"while not loading the button is enabled"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
componentTest("disabled button", {
|
|
|
|
template: "{{d-button disabled=disabled}}",
|
|
|
|
|
|
|
|
beforeEach() {
|
|
|
|
this.set("disabled", true);
|
|
|
|
},
|
|
|
|
|
|
|
|
test(assert) {
|
|
|
|
assert.ok(find("button[disabled]").length, "the button is disabled");
|
|
|
|
|
|
|
|
this.set("disabled", false);
|
|
|
|
|
|
|
|
assert.ok(find("button:not([disabled])").length, "the button is enabled");
|
|
|
|
}
|
|
|
|
});
|