discourse-ai/spec/system/summarization/chat_channel_summarization_...

37 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require_relative "../../support/summarization_stubs"
RSpec.describe "AI chat channel summarization", type: :system, js: true do
fab!(:user) { Fabricate(:leader) }
fab!(:channel) { Fabricate(:chat_channel) }
fab!(:message_1) { Fabricate(:chat_message, chat_channel: channel) }
fab!(:message_2) { Fabricate(:chat_message, chat_channel: channel) }
fab!(:message_3) { Fabricate(:chat_message, chat_channel: channel) }
before do
sign_in(user)
chat_system_bootstrap(user, [channel])
SiteSetting.ai_summarization_enabled = true
SiteSetting.ai_summarization_model = "gpt-4"
end
let(:summarization_modal) { PageObjects::Modals::Summarization.new }
it "returns a summary using the selected timeframe" do
visit("/chat/c/-/#{channel.id}")
SummarizationStubs.openai_chat_summarization_stub([message_1, message_2, message_3])
find(".chat-composer-dropdown__trigger-btn").click
find(".chat-composer-dropdown__action-btn.chat_channel_summary").click
expect(summarization_modal).to be_visible
summarization_modal.select_timeframe("3")
expect(summarization_modal.summary_value).to eq(SummarizationStubs.test_summary)
end
end