discourse/lib/discourse_dev/reviewable_queued_post.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

64 lines
1.8 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require "discourse_dev/reviewable"
require "faker"
module DiscourseDev
class ReviewableQueuedPost < Reviewable
def populate!
:new_topics_unless_allowed_groups.tap do |reason|
manager =
NewPostManager.new(
@users.sample,
custom_payload_for_reason(reason).merge(
title: Faker::Lorem.sentence,
raw: Faker::DiscourseMarkdown.sandwich(sentences: 3),
tags: nil,
typing_duration_msecs: Faker::Number.between(from: 2_000, to: 5_000),
composer_open_duration_msecs: Faker::Number.between(from: 5_500, to: 10_000),
),
)
manager.enqueue(reason, creator_opts: { skip_validations: true })
end
%i[
email_auth_res_enqueue
email_spam
post_count
group
fast_typer
auto_silence_regex
staged
category
contains_media
].each do |reason|
topic = @topics.sample
manager =
NewPostManager.new(
@users.sample,
custom_payload_for_reason(reason).merge(
topic_id: topic.id,
raw: Faker::DiscourseMarkdown.sandwich(sentences: 3),
tags: nil,
typing_duration_msecs: Faker::Number.between(from: 2_000, to: 5_000),
composer_open_duration_msecs: Faker::Number.between(from: 5_500, to: 10_000),
reply_to_post_number: topic.posts.sample.post_number,
),
)
manager.enqueue(reason, creator_opts: { skip_validations: true })
end
end
private
def custom_payload_for_reason(reason)
case reason
when :email_auth_res_enqueue, :email_spam
{ via_email: true, raw_email: Faker::Lorem.paragraph }
else
{}
end
end
end
end