mirror of
https://github.com/discourse/discourse.git
synced 2024-12-05 11:53:39 +08:00
63bab32816
* FEATURE: introduces minimum trust level for polls This commit makes `poll_enabled` less misleading and introduces `poll_minimum_trust_level_to_create`. If poll are enabled they will always be cooked, and if you have the required trust level you can create polls. As a side effect, it also fixes a bug where rebaking a post created by staff member when `poll_enabled=false` would end up not cooking it. It also adds more tests to ensure settings are respected. * admins should be whitelisted * checks for admin in post validation * test for >= instead of == trust level
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import { acceptance } from "helpers/qunit-helpers";
|
|
import { displayPollBuilderButton } from "discourse/plugins/poll/helpers/display-poll-builder-button";
|
|
import { replaceCurrentUser } from "discourse/plugins/poll/helpers/replace-current-user";
|
|
|
|
acceptance("Poll Builder - polls are disabled", {
|
|
loggedIn: true,
|
|
settings: {
|
|
poll_enabled: false,
|
|
poll_minimum_trust_level_to_create: 2
|
|
}
|
|
});
|
|
|
|
test("sufficient trust level", (assert) => {
|
|
replaceCurrentUser({ admin: false, trust_level: 3 });
|
|
|
|
displayPollBuilderButton();
|
|
|
|
andThen(() => {
|
|
assert.ok(!exists("button[title='Build Poll']"), "it hides the builder button");
|
|
});
|
|
});
|
|
|
|
test("insufficient trust level", (assert) => {
|
|
replaceCurrentUser({ admin: false, trust_level: 1 });
|
|
|
|
displayPollBuilderButton();
|
|
|
|
andThen(() => {
|
|
assert.ok(!exists("button[title='Build Poll']"), "it hides the builder button");
|
|
});
|
|
});
|
|
|
|
test("admin", (assert) => {
|
|
replaceCurrentUser({ admin: true });
|
|
|
|
displayPollBuilderButton();
|
|
|
|
andThen(() => {
|
|
assert.ok(!exists("button[title='Build Poll']"), "it hides the builder button");
|
|
});
|
|
});
|