REFACTOR: idMap should be a private API

This commit is contained in:
Robin Ward 2019-11-12 10:43:33 -05:00
parent 7f651b9666
commit afadf361b3
3 changed files with 3 additions and 17 deletions

View File

@ -257,7 +257,7 @@ Category.reopenClass({
return Discourse.Site.currentProp("sortedCategories");
},
idMap() {
_idMap() {
return Discourse.Site.currentProp("categoriesById");
},
@ -273,7 +273,7 @@ Category.reopenClass({
if (!id) {
return;
}
return Category.idMap()[id];
return Category._idMap()[id];
},
findByIds(ids = []) {

View File

@ -410,12 +410,11 @@ const TopicTrackingState = EmberObject.extend({
loadStates(data) {
const states = this.states;
const idMap = Category.idMap();
// I am taking some shortcuts here to avoid 500 gets for a large list
if (data) {
data.forEach(topic => {
var category = idMap[topic.category_id];
let category = Category.findById(topic.category_id);
if (category && category.parent_category_id) {
topic.parent_category_id = category.parent_category_id;
}

View File

@ -184,19 +184,6 @@ QUnit.test("findSingleBySlug", assert => {
);
});
QUnit.test("findByIds", assert => {
const store = createStore();
const categories = {
1: store.createRecord("category", { id: 1 }),
2: store.createRecord("category", { id: 2 })
};
sandbox.stub(Category, "idMap").returns(categories);
assert.deepEqual(Category.findByIds([1, 2, 3]), _.values(categories));
assert.deepEqual(Category.findByIds(), []);
});
QUnit.test("search with category name", assert => {
const store = createStore(),
category1 = store.createRecord("category", {