Skip to content

Commit 4fe8b12

Browse files
committed
Rspec: Add tests for content conversion
1 parent 8c3fd8d commit 4fe8b12

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

spec/dummy/config/application.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
require 'active_record/railtie'
88
require 'active_storage/engine'
99
require 'action_controller/railtie'
10+
require 'action_text/engine'
1011

1112
Bundler.require(*Rails.groups)
1213
require 'ruby_llm'

spec/ruby_llm/active_record/acts_as_spec.rb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,29 @@ class BotToolCall < ActiveRecord::Base # rubocop:disable Lint/ConstantDefinition
378378
end
379379
end
380380

381+
describe 'Action Text content support' do
382+
it 'converts Action Text content to plain text' do
383+
chat = Chat.create!(model_id: model)
384+
action_text_content = instance_double(ActionText::RichText)
385+
allow(action_text_content).to receive(:to_plain_text).and_return('This is rich text content')
386+
387+
message = chat.messages.create!(role: 'user')
388+
allow(message).to receive(:content).and_return(action_text_content)
389+
390+
llm_message = message.to_llm
391+
392+
expect(action_text_content).to have_received(:to_plain_text)
393+
expect(llm_message.content).to eq('This is rich text content')
394+
end
395+
396+
it 'handles regular string content when to_plain_text is not available' do
397+
chat = Chat.create!(model_id: model)
398+
message = chat.messages.create!(role: 'user', content: 'Regular text content')
399+
llm_message = message.to_llm
400+
expect(llm_message.content).to eq('Regular text content')
401+
end
402+
end
403+
381404
describe 'attachment handling' do
382405
let(:image_path) { File.expand_path('../../fixtures/ruby.png', __dir__) }
383406
let(:pdf_path) { File.expand_path('../../fixtures/sample.pdf', __dir__) }

0 commit comments

Comments
 (0)