2018-06-15 11:03:24 -04:00
|
|
|
import componentTest from "helpers/component-test";
|
2017-10-19 15:51:08 -04:00
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
moduleForComponent("category-chooser", {
|
2017-12-22 07:08:12 -05:00
|
|
|
integration: true,
|
|
|
|
beforeEach: function() {
|
2018-06-15 11:03:24 -04:00
|
|
|
this.set("subject", selectKit());
|
2017-12-22 07:08:12 -05:00
|
|
|
}
|
|
|
|
});
|
2017-10-19 15:51:08 -04:00
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with value", {
|
|
|
|
template: "{{category-chooser value=2}}",
|
2017-10-19 15:51:08 -04:00
|
|
|
|
|
|
|
test(assert) {
|
2018-07-24 14:12:09 -04:00
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.value(),
|
|
|
|
2
|
|
|
|
);
|
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.title(),
|
|
|
|
"feature"
|
|
|
|
);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with excludeCategoryId", {
|
|
|
|
template: "{{category-chooser excludeCategoryId=2}}",
|
2017-10-19 15:51:08 -04:00
|
|
|
|
2018-07-24 14:12:09 -04:00
|
|
|
async test(assert) {
|
2018-07-29 16:51:32 -04:00
|
|
|
await this.get("subject").expand();
|
2018-06-15 11:03:24 -04:00
|
|
|
|
2018-07-24 14:12:09 -04:00
|
|
|
assert.notOk(
|
|
|
|
this.get("subject")
|
|
|
|
.rowByValue(2)
|
|
|
|
.exists()
|
2018-06-15 11:03:24 -04:00
|
|
|
);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with scopedCategoryId", {
|
|
|
|
template: "{{category-chooser scopedCategoryId=2}}",
|
2017-10-19 15:51:08 -04:00
|
|
|
|
2018-07-24 14:12:09 -04:00
|
|
|
async test(assert) {
|
2018-07-29 16:51:32 -04:00
|
|
|
await this.get("subject").expand();
|
2018-07-24 14:12:09 -04:00
|
|
|
|
|
|
|
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);
|
2019-01-10 10:49:53 -05:00
|
|
|
|
|
|
|
await this.get("subject").fillInFilter("dev");
|
|
|
|
|
|
|
|
assert.equal(this.get("subject").rows().length, 3);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with allowUncategorized=null", {
|
|
|
|
template: "{{category-chooser allowUncategorized=null}}",
|
2017-10-19 15:51:08 -04:00
|
|
|
|
|
|
|
beforeEach() {
|
|
|
|
this.siteSettings.allow_uncategorized_topics = false;
|
|
|
|
},
|
|
|
|
|
|
|
|
test(assert) {
|
2018-07-24 14:12:09 -04:00
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.value(),
|
|
|
|
null
|
|
|
|
);
|
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.title(),
|
|
|
|
"category"
|
|
|
|
);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with allowUncategorized=null rootNone=true", {
|
|
|
|
template: "{{category-chooser allowUncategorized=null rootNone=true}}",
|
2017-10-19 15:51:08 -04:00
|
|
|
|
|
|
|
beforeEach() {
|
|
|
|
this.siteSettings.allow_uncategorized_topics = false;
|
|
|
|
},
|
|
|
|
|
|
|
|
test(assert) {
|
2018-07-24 14:12:09 -04:00
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.value(),
|
|
|
|
null
|
|
|
|
);
|
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.title(),
|
|
|
|
"category"
|
|
|
|
);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with disallowed uncategorized, rootNone and rootNoneLabel", {
|
|
|
|
template:
|
|
|
|
'{{category-chooser allowUncategorized=null rootNone=true rootNoneLabel="test.root"}}',
|
2017-10-19 15:51:08 -04:00
|
|
|
|
|
|
|
beforeEach() {
|
2018-06-15 11:03:24 -04:00
|
|
|
I18n.translations[I18n.locale].js.test = { root: "root none label" };
|
2017-10-19 15:51:08 -04:00
|
|
|
this.siteSettings.allow_uncategorized_topics = false;
|
|
|
|
},
|
|
|
|
|
|
|
|
test(assert) {
|
2018-07-24 14:12:09 -04:00
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.value(),
|
|
|
|
null
|
|
|
|
);
|
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.title(),
|
|
|
|
"category"
|
|
|
|
);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with allowed uncategorized", {
|
|
|
|
template: "{{category-chooser allowUncategorized=true}}",
|
2017-10-19 15:51:08 -04:00
|
|
|
|
|
|
|
beforeEach() {
|
|
|
|
this.siteSettings.allow_uncategorized_topics = true;
|
|
|
|
},
|
|
|
|
|
|
|
|
test(assert) {
|
2018-07-24 14:12:09 -04:00
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.value(),
|
|
|
|
null
|
|
|
|
);
|
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.title(),
|
|
|
|
"uncategorized"
|
|
|
|
);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with allowed uncategorized and rootNone", {
|
|
|
|
template: "{{category-chooser allowUncategorized=true rootNone=true}}",
|
2017-10-19 15:51:08 -04:00
|
|
|
|
|
|
|
beforeEach() {
|
|
|
|
this.siteSettings.allow_uncategorized_topics = true;
|
|
|
|
},
|
|
|
|
|
|
|
|
test(assert) {
|
2018-07-24 14:12:09 -04:00
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.value(),
|
|
|
|
null
|
|
|
|
);
|
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.title(),
|
|
|
|
"(no category)"
|
|
|
|
);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-06-15 11:03:24 -04:00
|
|
|
componentTest("with allowed uncategorized rootNone and rootNoneLabel", {
|
|
|
|
template:
|
|
|
|
'{{category-chooser allowUncategorized=true rootNone=true rootNoneLabel="test.root"}}',
|
2017-10-19 15:51:08 -04:00
|
|
|
|
|
|
|
beforeEach() {
|
2018-06-15 11:03:24 -04:00
|
|
|
I18n.translations[I18n.locale].js.test = { root: "root none label" };
|
2017-10-19 15:51:08 -04:00
|
|
|
this.siteSettings.allow_uncategorized_topics = true;
|
|
|
|
},
|
|
|
|
|
|
|
|
test(assert) {
|
2018-07-24 14:12:09 -04:00
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.value(),
|
|
|
|
null
|
|
|
|
);
|
|
|
|
assert.equal(
|
|
|
|
this.get("subject")
|
|
|
|
.header()
|
|
|
|
.title(),
|
|
|
|
"root none label"
|
|
|
|
);
|
2017-10-19 15:51:08 -04:00
|
|
|
}
|
|
|
|
});
|