discourse-docs/test/javascripts/acceptance/docs-sidebar-test.js

78 lines
2.0 KiB
JavaScript

import { click, currentURL, visit } from "@ember/test-helpers";
import { test } from "qunit";
import {
acceptance,
exists,
query,
} from "discourse/tests/helpers/qunit-helpers";
import { cloneJSON } from "discourse-common/lib/object";
import I18n from "I18n";
import docsFixtures from "../fixtures/docs";
let DOCS_URL_PATH = "docs";
acceptance("Docs - Sidebar with docs disabled", function (needs) {
needs.user();
needs.site({ docs_path: DOCS_URL_PATH });
needs.settings({
docs_enabled: false,
navigation_menu: "sidebar",
});
test("docs sidebar link is hidden", async function (assert) {
await visit("/");
await click(
".sidebar-section[data-section-name='community'] .sidebar-more-section-links-details-summary"
);
assert.ok(
!exists(".sidebar-section-link[data-link-name='docs']"),
"it does not display the docs link in sidebar"
);
});
});
acceptance("Docs - Sidebar with docs enabled", function (needs) {
needs.user();
needs.site({ docs_path: DOCS_URL_PATH });
needs.settings({
docs_enabled: true,
navigation_menu: "sidebar",
});
needs.pretender((server, helper) => {
server.get("/" + DOCS_URL_PATH + ".json", () =>
helper.response(cloneJSON(docsFixtures))
);
});
test("clicking on docs link", async function (assert) {
await visit("/");
await click(
".sidebar-section[data-section-name='community'] .sidebar-more-section-links-details-summary"
);
assert.strictEqual(
query(".sidebar-section-link[data-link-name='docs']").textContent.trim(),
I18n.t("sidebar.docs_link_text"),
"displays the right text for the link"
);
assert.strictEqual(
query(".sidebar-section-link[data-link-name='docs']").title,
I18n.t("sidebar.docs_link_title"),
"displays the right title for the link"
);
await click(".sidebar-section-link[data-link-name='docs']");
assert.strictEqual(
currentURL(),
"/" + DOCS_URL_PATH,
"it navigates to the right page"
);
});
});