This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/tests/integration/components/widgets/topic-admin-menu-test.js
2022-11-03 12:32:20 +01:00

80 lines
2.5 KiB
JavaScript

import { module, test } from "qunit";
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import { render } from "@ember/test-helpers";
import { exists } from "discourse/tests/helpers/qunit-helpers";
import { hbs } from "ember-cli-htmlbars";
import Category from "discourse/models/category";
import { getOwner } from "discourse-common/lib/get-owner";
const createArgs = (topic) => {
return {
topic,
openUpwards: "true",
toggleMultiSelect: () => {},
deleteTopic: () => {},
recoverTopic: () => {},
toggleClosed: () => {},
toggleArchived: () => {},
toggleVisibility: () => {},
showTopicTimerModal: () => {},
showFeatureTopic: () => {},
showChangeTimestamp: () => {},
resetBumpDate: () => {},
convertToPublicTopic: () => {},
convertToPrivateMessage: () => {},
};
};
module(
"Integration | Component | Widget | topic-admin-menu-button",
function (hooks) {
setupRenderingTest(hooks);
test("topic-admin-menu-button is present for admin/moderators", async function (assert) {
this.currentUser.setProperties({
admin: true,
moderator: true,
id: 123,
});
const store = getOwner(this).lookup("service:store");
const topic = store.createRecord("topic", {
user_id: this.currentUser.id,
});
topic.set("category_id", Category.create({ read_restricted: true }).id);
this.siteSettings.allow_featured_topic_on_user_profiles = true;
this.set("args", createArgs(topic));
await render(
hbs`<MountWidget @widget="topic-admin-menu-button" @args={{this.args}} />`
);
assert.ok(exists(".toggle-admin-menu"), "admin wrench is present");
});
test("topic-admin-menu-button hides for non-admin when there is no action", async function (assert) {
this.currentUser.setProperties({
admin: false,
moderator: false,
id: 123,
});
const store = getOwner(this).lookup("service:store");
const topic = store.createRecord("topic", {
user_id: this.currentUser.id,
});
topic.set("category_id", Category.create({ read_restricted: true }).id);
this.siteSettings.allow_featured_topic_on_user_profiles = true;
this.set("args", createArgs(topic));
await render(
hbs`<MountWidget @widget="topic-admin-menu-button" @args={{this.args}} />`
);
assert.ok(!exists(".toggle-admin-menu"), "admin wrench is not present");
});
}
);