From e94385927b172f4a381328c6758f6bfa9689ee1d Mon Sep 17 00:00:00 2001 From: rngus2344 Date: Wed, 5 Mar 2025 16:21:51 -0600 Subject: [PATCH] spec added --- .../strategies/topic_summary_spec.rb | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/spec/lib/modules/summarization/strategies/topic_summary_spec.rb b/spec/lib/modules/summarization/strategies/topic_summary_spec.rb index 93f2c4c2..6769bb63 100644 --- a/spec/lib/modules/summarization/strategies/topic_summary_spec.rb +++ b/spec/lib/modules/summarization/strategies/topic_summary_spec.rb @@ -6,6 +6,7 @@ RSpec.describe DiscourseAi::Summarization::Strategies::TopicSummary do fab!(:topic) { Fabricate(:topic, highest_post_number: 25) } fab!(:post_1) { Fabricate(:post, topic: topic, post_number: 1) } fab!(:post_2) { Fabricate(:post, topic: topic, post_number: 2) } + fab!(:admin) describe "#targets_data" do shared_examples "includes only public-visible topics" do @@ -62,4 +63,54 @@ RSpec.describe DiscourseAi::Summarization::Strategies::TopicSummary do end end end + + describe "#summary_extension_prompt" do + context "when ai_summary_consolidator_persona_id siteSetting is set" do + it "returns a prompt with the correct text" do + AiPersona.create!( + name: "TestPersona", + system_prompt: "test prompt", + description: "test", + allowed_group_ids: [Group::AUTO_GROUPS[:trust_level_0]], + ) + personaClass = + DiscourseAi::AiBot::Personas::Persona.find_by(user: admin, name: "TestPersona") + SiteSetting.ai_summary_consolidator_persona_id = personaClass.id + + expect( + topic_summary + .summary_extension_prompt(nil, [{ id: 1, poster: "test", text: "hello" }]) + .messages + .first[ + :content + ], + ).to include("test prompt") + end + end + end + + describe "#first_summary_prompt" do + context "when ai_summary_persona_id siteSetting is set" do + it "returns a prompt with the correct text" do + AiPersona.create!( + name: "TestPersona", + system_prompt: "test prompt", + description: "test", + allowed_group_ids: [Group::AUTO_GROUPS[:trust_level_0]], + ) + personaClass = + DiscourseAi::AiBot::Personas::Persona.find_by(user: admin, name: "TestPersona") + SiteSetting.ai_summary_persona_id = personaClass.id + + expect( + topic_summary + .first_summary_prompt([{ id: 1, poster: "test", text: "hello" }]) + .messages + .first[ + :content + ], + ).to include("test prompt") + end + end + end end