discourse-solved/spec/components/composer_messages_finder_sp...

59 lines
1.8 KiB
Ruby

# encoding: utf-8
# frozen_string_literal: true
require "rails_helper"
require "composer_messages_finder"
describe ComposerMessagesFinder do
describe ".check_topic_is_solved" do
fab!(:user) { Fabricate(:user) }
fab!(:topic) { Fabricate(:topic) }
fab!(:post) { Fabricate(:post, topic: topic, user: Fabricate(:user)) }
before { SiteSetting.disable_solved_education_message = false }
it "does not show message without a topic id" do
expect(
described_class.new(user, composer_action: "createTopic").check_topic_is_solved,
).to be_blank
expect(described_class.new(user, composer_action: "reply").check_topic_is_solved).to be_blank
end
describe "a reply" do
it "does not show message if topic is not solved" do
expect(
described_class.new(
user,
composer_action: "reply",
topic_id: topic.id,
).check_topic_is_solved,
).to be_blank
end
it "does not show message if disable_solved_education_message is true" do
SiteSetting.disable_solved_education_message = true
DiscourseSolved.accept_answer!(post, Discourse.system_user)
expect(
described_class.new(
user,
composer_action: "reply",
topic_id: topic.id,
).check_topic_is_solved,
).to be_blank
end
it "shows message if the topic is solved" do
DiscourseSolved.accept_answer!(post, Discourse.system_user)
message =
described_class.new(
user,
composer_action: "reply",
topic_id: topic.id,
).check_topic_is_solved
expect(message).not_to be_blank
expect(message[:body]).to include("This topic has been solved")
end
end
end
end