discourse/test/javascripts/components/category-chooser-test.js.es6

222 lines
4.4 KiB
Plaintext
Raw Normal View History

2018-06-15 23:03:24 +08:00
import componentTest from "helpers/component-test";
2017-10-20 03:51:08 +08:00
2018-06-15 23:03:24 +08:00
moduleForComponent("category-chooser", {
integration: true,
beforeEach: function() {
2018-06-15 23:03:24 +08:00
this.set("subject", selectKit());
}
});
2017-10-20 03:51:08 +08:00
2018-06-15 23:03:24 +08:00
componentTest("with value", {
template: "{{category-chooser value=2}}",
2017-10-20 03:51:08 +08:00
test(assert) {
assert.equal(
this.get("subject")
.header()
.value(),
2
);
assert.equal(
this.get("subject")
.header()
.title(),
"feature"
);
2017-10-20 03:51:08 +08:00
}
});
2018-06-15 23:03:24 +08:00
componentTest("with excludeCategoryId", {
template: "{{category-chooser excludeCategoryId=2}}",
2017-10-20 03:51:08 +08:00
async test(assert) {
2018-07-30 04:51:32 +08:00
await this.get("subject").expand();
2018-06-15 23:03:24 +08:00
assert.notOk(
this.get("subject")
.rowByValue(2)
.exists()
2018-06-15 23:03:24 +08:00
);
2017-10-20 03:51:08 +08:00
}
});
2018-06-15 23:03:24 +08:00
componentTest("with scopedCategoryId", {
template: "{{category-chooser scopedCategoryId=2}}",
2017-10-20 03:51:08 +08:00
async test(assert) {
2018-07-30 04:51:32 +08:00
await this.get("subject").expand();
assert.equal(
this.get("subject")
.rowByIndex(0)
.title(),
"Discussion about features or potential features of Discourse: how they work, why they work, etc."
);
assert.equal(
this.get("subject")
.rowByIndex(0)
.value(),
2
);
assert.equal(
this.get("subject")
.rowByIndex(1)
.title(),
"My idea here is to have mini specs for features we would like built but have no bandwidth to build"
);
assert.equal(
this.get("subject")
.rowByIndex(1)
.value(),
26
);
assert.equal(this.get("subject").rows().length, 2);
await this.get("subject").fillInFilter("dev");
assert.equal(this.get("subject").rows().length, 3);
2017-10-20 03:51:08 +08:00
}
});
2018-06-15 23:03:24 +08:00
componentTest("with allowUncategorized=null", {
template: "{{category-chooser allowUncategorized=null}}",
2017-10-20 03:51:08 +08:00
beforeEach() {
this.siteSettings.allow_uncategorized_topics = false;
},
test(assert) {
assert.equal(
this.get("subject")
.header()
.value(),
null
);
assert.equal(
this.get("subject")
.header()
.title(),
"category"
);
2017-10-20 03:51:08 +08:00
}
});
2018-06-15 23:03:24 +08:00
componentTest("with allowUncategorized=null rootNone=true", {
template: "{{category-chooser allowUncategorized=null rootNone=true}}",
2017-10-20 03:51:08 +08:00
beforeEach() {
this.siteSettings.allow_uncategorized_topics = false;
},
test(assert) {
assert.equal(
this.get("subject")
.header()
.value(),
null
);
assert.equal(
this.get("subject")
.header()
.title(),
"category"
);
2017-10-20 03:51:08 +08:00
}
});
2018-06-15 23:03:24 +08:00
componentTest("with disallowed uncategorized, rootNone and rootNoneLabel", {
template:
'{{category-chooser allowUncategorized=null rootNone=true rootNoneLabel="test.root"}}',
2017-10-20 03:51:08 +08:00
beforeEach() {
2018-06-15 23:03:24 +08:00
I18n.translations[I18n.locale].js.test = { root: "root none label" };
2017-10-20 03:51:08 +08:00
this.siteSettings.allow_uncategorized_topics = false;
},
test(assert) {
assert.equal(
this.get("subject")
.header()
.value(),
null
);
assert.equal(
this.get("subject")
.header()
.title(),
"category"
);
2017-10-20 03:51:08 +08:00
}
});
2018-06-15 23:03:24 +08:00
componentTest("with allowed uncategorized", {
template: "{{category-chooser allowUncategorized=true}}",
2017-10-20 03:51:08 +08:00
beforeEach() {
this.siteSettings.allow_uncategorized_topics = true;
},
test(assert) {
assert.equal(
this.get("subject")
.header()
.value(),
null
);
assert.equal(
this.get("subject")
.header()
.title(),
"uncategorized"
);
2017-10-20 03:51:08 +08:00
}
});
2018-06-15 23:03:24 +08:00
componentTest("with allowed uncategorized and rootNone", {
template: "{{category-chooser allowUncategorized=true rootNone=true}}",
2017-10-20 03:51:08 +08:00
beforeEach() {
this.siteSettings.allow_uncategorized_topics = true;
},
test(assert) {
assert.equal(
this.get("subject")
.header()
.value(),
null
);
assert.equal(
this.get("subject")
.header()
.title(),
"(no category)"
);
2017-10-20 03:51:08 +08:00
}
});
2018-06-15 23:03:24 +08:00
componentTest("with allowed uncategorized rootNone and rootNoneLabel", {
template:
'{{category-chooser allowUncategorized=true rootNone=true rootNoneLabel="test.root"}}',
2017-10-20 03:51:08 +08:00
beforeEach() {
2018-06-15 23:03:24 +08:00
I18n.translations[I18n.locale].js.test = { root: "root none label" };
2017-10-20 03:51:08 +08:00
this.siteSettings.allow_uncategorized_topics = true;
},
test(assert) {
assert.equal(
this.get("subject")
.header()
.value(),
null
);
assert.equal(
this.get("subject")
.header()
.title(),
"root none label"
);
2017-10-20 03:51:08 +08:00
}
});