diff --git a/assets/javascripts/discourse/models/docs.js.es6 b/assets/javascripts/discourse/models/docs.js.es6
index 4250132..83c8e39 100644
--- a/assets/javascripts/discourse/models/docs.js.es6
+++ b/assets/javascripts/discourse/models/docs.js.es6
@@ -33,33 +33,22 @@ Docs.reopenClass({
filters.push(`topic=${params.selectedTopic}`);
}
- let promise = ajax(`/docs.json?${filters.join("&")}`);
-
- promise = promise.then((data) => {
+ return ajax(`/docs.json?${filters.join("&")}`).then((data) => {
data.topics.topic_list.topics = data.topics.topic_list.topics.map(
- (topic) => {
- topic = Topic.create(topic);
- return topic;
- }
+ (topic) => Topic.create(topic)
);
data.topic = Topic.create(data.topic);
return data;
});
-
- return promise;
},
loadMore(loadMoreUrl) {
- let promise = ajax(loadMoreUrl);
-
- promise = promise.then((data) => {
+ return ajax(loadMoreUrl).then((data) => {
data.topics.topic_list.topics = data.topics.topic_list.topics.map(
(topic) => Topic.create(topic)
);
return data;
});
-
- return promise;
},
});
diff --git a/assets/javascripts/discourse/templates/components/docs-category.hbs b/assets/javascripts/discourse/templates/components/docs-category.hbs
index 622c7f6..b4c6c3b 100644
--- a/assets/javascripts/discourse/templates/components/docs-category.hbs
+++ b/assets/javascripts/discourse/templates/components/docs-category.hbs
@@ -1,4 +1,4 @@
-
+
{{#unless category.active}}
{{d-icon "plus"}}
{{/unless}}
diff --git a/assets/javascripts/discourse/templates/components/docs-tag.hbs b/assets/javascripts/discourse/templates/components/docs-tag.hbs
index f873ac8..18379a9 100644
--- a/assets/javascripts/discourse/templates/components/docs-tag.hbs
+++ b/assets/javascripts/discourse/templates/components/docs-tag.hbs
@@ -1,4 +1,4 @@
-
+
{{#unless tag.active}}
{{d-icon "plus"}}
{{/unless}}
diff --git a/assets/javascripts/discourse/templates/docs-index.hbs b/assets/javascripts/discourse/templates/docs-index.hbs
index 9d48be2..3e67577 100644
--- a/assets/javascripts/discourse/templates/docs-index.hbs
+++ b/assets/javascripts/discourse/templates/docs-index.hbs
@@ -30,8 +30,7 @@
{{#each categories as |category|}}
{{docs-category
category=category
- selectCategory=(action "updateSelectedCategories"
- tagName="")
+ selectCategory=(action "updateSelectedCategories" category)
}}
{{/each}}
@@ -43,7 +42,7 @@
{{#each tags as |tag|}}
{{docs-tag
tag=tag
- selectTag=(action "updateSelectedTags")
+ selectTag=(action "updateSelectedTags" tag)
}}
{{/each}}
diff --git a/test/javascripts/acceptance/docs-test.js.es6 b/test/javascripts/acceptance/docs-test.js.es6
index 740bda9..e310c80 100644
--- a/test/javascripts/acceptance/docs-test.js.es6
+++ b/test/javascripts/acceptance/docs-test.js.es6
@@ -1,4 +1,4 @@
-import { acceptance, queryAll } from "helpers/qunit-helpers";
+import { acceptance, count, query } from "helpers/qunit-helpers";
import docsFixtures from "../fixtures/docs";
acceptance("Docs", function (needs) {
@@ -8,7 +8,25 @@ acceptance("Docs", function (needs) {
});
needs.pretender((server, helper) => {
- server.get("/docs.json", () => helper.response(docsFixtures));
+ server.get("/docs.json", (request) => {
+ if (request.queryParams.category === "1") {
+ const fixture = JSON.parse(JSON.stringify(docsFixtures));
+
+ return helper.response(
+ Object.assign(fixture, {
+ categories: [
+ {
+ id: 1,
+ count: 119,
+ active: true,
+ },
+ ],
+ })
+ );
+ } else {
+ return helper.response(docsFixtures);
+ }
+ });
});
test("index page", async function (assert) {
@@ -16,11 +34,19 @@ acceptance("Docs", function (needs) {
await click("#toggle-hamburger-menu");
await click(".docs-link");
- assert.equal(queryAll(".docs-category")[0].innerText.trim(), "bug 119");
- assert.equal(queryAll(".docs-tag")[0].innerText.trim(), "something 74");
+ assert.equal(query(".docs-category").innerText.trim(), "bug 119");
+ assert.equal(query(".docs-tag").innerText.trim(), "something 74");
assert.equal(
- queryAll(".docs-topic-link")[0].innerText.trim(),
+ query(".docs-topic-link").innerText.trim(),
"Importing from Software X"
);
});
+
+ test("selecting a category", async function (assert) {
+ await visit("/docs");
+ assert.equal(count(".docs-category.selected"), 0);
+
+ await click(".docs-item.docs-category");
+ assert.equal(count(".docs-category.selected"), 1);
+ });
});