mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-06-30 19:42:17 +00:00
34 lines
858 B
Ruby
34 lines
858 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
RSpec.describe AiArtifactKeyValue, type: :model do
|
||
|
fab!(:user)
|
||
|
fab!(:ai_artifact)
|
||
|
|
||
|
describe "#validate_max_keys_per_user_per_artifact" do
|
||
|
before { SiteSetting.ai_artifact_max_keys_per_user_per_artifact = 2 }
|
||
|
|
||
|
it "prevents creation when at the limit" do
|
||
|
2.times do |i|
|
||
|
described_class.create!(
|
||
|
ai_artifact: ai_artifact,
|
||
|
user: user,
|
||
|
key: "key_#{i}",
|
||
|
value: "value_#{i}",
|
||
|
)
|
||
|
end
|
||
|
|
||
|
new_record =
|
||
|
described_class.new(
|
||
|
ai_artifact: ai_artifact,
|
||
|
user: user,
|
||
|
key: "new_key",
|
||
|
value: "new_value",
|
||
|
)
|
||
|
expect(new_record).not_to be_valid
|
||
|
expect(new_record.errors[:base]).to include(
|
||
|
I18n.t("discourse_ai.ai_artifact.errors.max_keys_exceeded", count: 2),
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
end
|