discourse-ai/spec/serializers/ai_features_persona_serializer_spec.rb
Roman Rizzi f7e0ea888d
DEV: Use a PORO to represent modules/features. (#1421)
Additional changes:

Adds a "#features" method in AiPersona to find which features are using that persona.
Serializes a basic version of a LlmModel in the persona's "#default_llm" serializer attribute.
2025-06-10 14:37:53 -03:00

32 lines
890 B
Ruby

# frozen_string_literal: true
RSpec.describe AiFeaturesPersonaSerializer do
fab!(:admin)
fab!(:ai_persona)
fab!(:group)
fab!(:group_2) { Fabricate(:group) }
describe "serialized attributes" do
before do
ai_persona.allowed_group_ids = [group.id, group_2.id]
ai_persona.save!
end
context "when there is a persona with allowed groups" do
let(:allowed_groups) do
Group
.where(id: ai_persona.allowed_group_ids)
.pluck(:id, :name)
.map { |id, name| { id: id, name: name } }
end
it "display every participant" do
serialized = described_class.new(ai_persona, scope: Guardian.new(admin), root: nil)
expect(serialized.id).to eq(ai_persona.id)
expect(serialized.name).to eq(ai_persona.name)
expect(serialized.allowed_groups).to eq(allowed_groups)
end
end
end
end