72 lines
2.0 KiB
JavaScript
72 lines
2.0 KiB
JavaScript
import createStore from "helpers/create-store";
|
|
|
|
QUnit.module("model:site");
|
|
|
|
QUnit.test("create", assert => {
|
|
assert.ok(Discourse.Site.create(), "it can create with no parameters");
|
|
});
|
|
|
|
QUnit.test("instance", assert => {
|
|
const site = Discourse.Site.current();
|
|
|
|
assert.present(site, "We have a current site singleton");
|
|
assert.present(
|
|
site.get("categories"),
|
|
"The instance has a list of categories"
|
|
);
|
|
assert.present(
|
|
site.get("flagTypes"),
|
|
"The instance has a list of flag types"
|
|
);
|
|
assert.present(
|
|
site.get("trustLevels"),
|
|
"The instance has a list of trust levels"
|
|
);
|
|
});
|
|
|
|
QUnit.test("create categories", assert => {
|
|
const store = createStore();
|
|
const site = store.createRecord("site", {
|
|
categories: [
|
|
{ id: 1234, name: "Test" },
|
|
{ id: 3456, name: "Test Subcategory", parent_category_id: 1234 },
|
|
{ id: 3458, name: "Invalid Subcategory", parent_category_id: 6666 }
|
|
]
|
|
});
|
|
|
|
const categories = site.get("categories");
|
|
site.get("sortedCategories");
|
|
|
|
assert.present(categories, "The categories are present");
|
|
assert.equal(categories.length, 3, "it loaded all three categories");
|
|
|
|
const parent = categories.findBy("id", 1234);
|
|
assert.present(parent, "it loaded the parent category");
|
|
assert.blank(parent.get("parentCategory"), "it has no parent category");
|
|
|
|
assert.equal(parent.get("subcategories").length, 1);
|
|
|
|
const subcategory = categories.findBy("id", 3456);
|
|
assert.present(subcategory, "it loaded the subcategory");
|
|
assert.equal(
|
|
subcategory.get("parentCategory"),
|
|
parent,
|
|
"it has associated the child with the parent"
|
|
);
|
|
|
|
// remove invalid category and child
|
|
categories.removeObject(categories[2]);
|
|
categories.removeObject(categories[1]);
|
|
|
|
assert.equal(
|
|
categories.length,
|
|
site.get("categoriesByCount").length,
|
|
"categories by count should change on removal"
|
|
);
|
|
assert.equal(
|
|
categories.length,
|
|
site.get("sortedCategories").length,
|
|
"sorted categories should change on removal"
|
|
);
|
|
});
|