discourse-assign/test/javascripts/acceptance/category-test.js

107 lines
2.8 KiB
JavaScript

import { visit } from "@ember/test-helpers";
import { test } from "qunit";
import DiscoveryFixtures from "discourse/tests/fixtures/discovery-fixtures";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
import { i18n } from "discourse-i18n";
function stubCategory(needs, customFields) {
needs.site({
categories: [
{
id: 6,
name: "test",
slug: "test",
custom_fields: customFields,
},
],
});
needs.pretender((server, helper) => {
server.get("/c/test/6/l/latest.json", () => {
return helper.response(
DiscoveryFixtures["/latest_can_create_topic.json"]
);
});
});
}
acceptance(
"Discourse Assign | Categories for users that can assign",
function (needs) {
needs.user({ can_assign: true });
needs.settings({
assign_enabled: true,
assigns_user_url_path: "/",
assigns_public: false,
});
stubCategory(needs, { enable_unassigned_filter: "true" });
test("can see Unassigned button", async function (assert) {
await visit("/c/test");
const title = i18n("filters.unassigned.help");
assert.dom(`#navigation-bar li[title='${title}']`).exists();
});
}
);
acceptance(
"Discourse Assign | Categories without enable_unassigned_filter",
function (needs) {
needs.user();
needs.settings({
assign_enabled: true,
assigns_user_url_path: "/",
assigns_public: false,
});
stubCategory(needs, { enable_unassigned_filter: "false" });
test("cannot see Unassigned button", async function (assert) {
await visit("/c/test");
const title = i18n("filters.unassigned.help");
assert.dom(`#navigation-bar li[title='${title}']`).doesNotExist();
});
}
);
acceptance(
"Discourse Assign | Categories when assigns are public",
function (needs) {
needs.user();
needs.settings({
assign_enabled: true,
assigns_user_url_path: "/",
assigns_public: true,
});
stubCategory(needs, { enable_unassigned_filter: "true" });
test("can see Unassigned button", async function (assert) {
await visit("/c/test");
const title = i18n("filters.unassigned.help");
assert.dom(`#navigation-bar li[title='${title}']`).exists();
});
}
);
acceptance(
"Discourse Assign | Categories when assigns are private",
function (needs) {
needs.user();
needs.settings({
assign_enabled: true,
assigns_user_url_path: "/",
assigns_public: false,
});
stubCategory(needs, { enable_unassigned_filter: "true" });
test("cannot see Unassigned button", async function (assert) {
await visit("/c/test");
const title = i18n("filters.unassigned.help");
assert.dom(`#navigation-bar li[title='${title}']`).doesNotExist();
});
}
);