discourse/spec/fabricators/reviewable_fabricator.rb
Ted Johansson e0a0a13a91
FIX: Fix broken client-side review actions (#29025)
After #28603, the options "agree and suspend" and "agree and silence" in the review queue weren't working. This was happening because the optionalService, when used as a decorator, needs a name argument to work properly. We were also lacking tests for this.
2024-09-30 13:27:25 +08:00

113 lines
2.6 KiB
Ruby

# frozen_string_literal: true
require "faker"
Fabricator(:reviewable) do
reviewable_by_moderator true
type "ReviewableUser"
created_by { Fabricate(:user) }
target_id { Fabricate(:user).id }
target_type "User"
target_created_by { Fabricate(:user) }
category
score 1.23
payload { { list: [1, 2, 3], name: "bandersnatch" } }
status { :pending }
end
Fabricator(:reviewable_queued_post_topic, class_name: :reviewable_queued_post) do
reviewable_by_moderator true
type "ReviewableQueuedPost"
created_by { Fabricate(:user) }
target_created_by { Fabricate(:user) }
category
payload do
{
raw: "hello world post contents.",
title: "queued post title",
tags: %w[cool neat],
extra: "some extra data",
archetype: "regular",
}
end
end
Fabricator(:reviewable_queued_post) do
reviewable_by_moderator true
type "ReviewableQueuedPost"
created_by { Fabricate(:user) }
target_created_by { Fabricate(:user) }
topic
payload do
{
raw: "hello world post contents.",
reply_to_post_number: 1,
via_email: true,
raw_email: "store_me",
auto_track: true,
custom_fields: {
hello: "world",
},
cooking_options: {
cat: "hat",
},
cook_method: Post.cook_methods[:raw_html],
image_sizes: {
"http://foo.bar/image.png" => {
"width" => 0,
"height" => 222,
},
},
}
end
end
Fabricator(:reviewable_queued_long_post, from: :reviewable_queued_post) do
reviewable_by_moderator true
type "ReviewableQueuedPost"
created_by { Fabricate(:user) }
target_created_by { Fabricate(:user) }
topic
payload do
{
raw: Faker::DiscourseMarkdown.sandwich(sentences: 6, repeat: 3),
reply_to_post_number: 1,
via_email: true,
raw_email: "store_me",
auto_track: true,
custom_fields: {
hello: "world",
},
cooking_options: {
cat: "hat",
},
cook_method: Post.cook_methods[:raw_html],
image_sizes: {
"http://foo.bar/image.png" => {
"width" => 0,
"height" => 222,
},
},
}
end
end
Fabricator(:reviewable_flagged_post) do
reviewable_by_moderator true
type "ReviewableFlaggedPost"
created_by { Fabricate(:user) }
target_created_by { Fabricate(:user) }
topic
target_type "Post"
target { Fabricate(:post) }
reviewable_scores { |p| [Fabricate.build(:reviewable_score, reviewable_id: p[:id])] }
end
Fabricator(:reviewable_user) do
reviewable_by_moderator true
type "ReviewableUser"
created_by { Fabricate(:user) }
target_type "User"
target { Fabricate(:user) }
end