Resourcify Badge Achievements (#12832)
* Resourcify badge achievements * Add test for single resource admin badge achievements * Add badge and badge achievement roles * Alphabetize (mostly) and cleanup syntax for easier writing * Use quotes instead of %w and not outsmart myself :( * alpha oops
This commit is contained in:
parent
7fa46683aa
commit
e915f46bf4
3 changed files with 47 additions and 22 deletions
|
|
@ -1,27 +1,33 @@
|
|||
module Constants
|
||||
module Role
|
||||
BASE_ROLES = ["Warn",
|
||||
"Comment Suspend",
|
||||
"Suspend",
|
||||
"Regular Member",
|
||||
"Trusted",
|
||||
"Pro"].freeze
|
||||
BASE_ROLES = [
|
||||
"Warn",
|
||||
"Comment Suspend",
|
||||
"Suspend",
|
||||
"Regular Member",
|
||||
"Trusted",
|
||||
"Pro",
|
||||
].freeze
|
||||
|
||||
SPECIAL_ROLES = ["Admin",
|
||||
"Super Admin",
|
||||
"Tech Admin",
|
||||
"Resource Admin: Article",
|
||||
"Resource Admin: Comment",
|
||||
"Resource Admin: BufferUpdate",
|
||||
"Resource Admin: ChatChannel",
|
||||
"Resource Admin: Page",
|
||||
"Resource Admin: FeedbackMessage",
|
||||
"Resource Admin: Config",
|
||||
"Resource Admin: Broadcast",
|
||||
"Resource Admin: HtmlVariant",
|
||||
"Resource Admin: DisplayAd",
|
||||
"Resource Admin: ListingCategory",
|
||||
"Resource Admin: Tag",
|
||||
"Resource Admin: DataUpdateScript"].freeze
|
||||
SPECIAL_ROLES = [
|
||||
"Admin",
|
||||
"Tech Admin",
|
||||
"Super Admin",
|
||||
"Resource Admin: Article",
|
||||
"Resource Admin: Badge",
|
||||
"Resource Admin: BadgeAchievement",
|
||||
"Resource Admin: Broadcast",
|
||||
"Resource Admin: BufferUpdate",
|
||||
"Resource Admin: ChatChannel",
|
||||
"Resource Admin: Comment",
|
||||
"Resource Admin: Config",
|
||||
"Resource Admin: DisplayAd",
|
||||
"Resource Admin: DataUpdateScript",
|
||||
"Resource Admin: FeedbackMessage",
|
||||
"Resource Admin: HtmlVariant",
|
||||
"Resource Admin: ListingCategory",
|
||||
"Resource Admin: Page",
|
||||
"Resource Admin: Tag",
|
||||
].freeze
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
class BadgeAchievement < ApplicationRecord
|
||||
CONTEXT_MESSAGE_ALLOWED_TAGS = %w[strong em i b u a code].freeze
|
||||
CONTEXT_MESSAGE_ALLOWED_ATTRIBUTES = %w[href name].freeze
|
||||
resourcify
|
||||
|
||||
belongs_to :user
|
||||
belongs_to :badge
|
||||
|
|
|
|||
|
|
@ -30,6 +30,24 @@ RSpec.describe "/admin/badges", type: :request do
|
|||
allow(BadgeAchievements::BadgeAwardWorker).to receive(:perform_async)
|
||||
end
|
||||
|
||||
context "when the user is a single resource admin" do
|
||||
it "awards the badge" do
|
||||
user.add_role(:single_resource_admin, BadgeAchievement)
|
||||
sign_in user
|
||||
allow(BadgeAchievements::BadgeAwardWorker).to receive(:perform_async)
|
||||
|
||||
post admin_badge_achievements_award_badges_path, params: {
|
||||
badge: badge.slug,
|
||||
usernames: usernames_string,
|
||||
message_markdown: "you got a badge nice one"
|
||||
}
|
||||
expect(BadgeAchievements::BadgeAwardWorker).to have_received(:perform_async).with(
|
||||
usernames_array, badge.slug, "you got a badge nice one"
|
||||
)
|
||||
expect(request.flash[:success]).to include("Badges are being rewarded. The task will finish shortly.")
|
||||
end
|
||||
end
|
||||
|
||||
it "awards badges" do
|
||||
allow(BadgeAchievements::BadgeAwardWorker).to receive(:perform_async)
|
||||
post admin_badge_achievements_award_badges_path, params: {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue