discourse-chat-integration/spec/jobs/regular/notify_chats_spec.rb

40 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require "rails_helper"
RSpec.describe PostCreator do
let(:topic) { Fabricate(:post).topic }
before { Jobs::NotifyChats.jobs.clear }
describe "when a post is created" do
describe "when plugin is enabled" do
before { SiteSetting.chat_integration_enabled = true }
it "should schedule a chat notification job" do
freeze_time Time.now.beginning_of_day
post = PostCreator.new(topic.user, raw: "Some post content", topic_id: topic.id).create!
job = Jobs::NotifyChats.jobs.last
expect(job["at"]).to eq(
Time.now.to_f + SiteSetting.chat_integration_delay_seconds.seconds.to_f,
)
expect(job["args"].first["post_id"]).to eq(post.id)
end
end
describe "when plugin is not enabled" do
before { SiteSetting.chat_integration_enabled = false }
it "should not schedule a job for chat notifications" do
PostCreator.new(topic.user, raw: "Some post content", topic_id: topic.id).create!
expect(Jobs::NotifyChats.jobs).to eq([])
end
end
end
end