FIX: Correctly display errors when parent module needs to be disabled first (#788)

* FIX: Correctly display errors when parent module needs to be disabled first

* Update spec/configuration/llm_validator_spec.rb

Co-authored-by: Penar Musaraj <pmusaraj@gmail.com>

---------

Co-authored-by: Penar Musaraj <pmusaraj@gmail.com>
This commit is contained in:
Roman Rizzi 2024-08-30 17:16:11 -03:00 committed by GitHub
parent e408cd080c
commit ed97827f49
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 24 additions and 3 deletions

View File

@ -9,9 +9,9 @@ module DiscourseAi
def valid_value?(val) def valid_value?(val)
if val == "" if val == ""
parent_module_name = modules_and_choose_llm_settings.invert[@opts[:name]] @parent_module_name = modules_and_choose_llm_settings.invert[@opts[:name]]
@parent_enabled = SiteSetting.public_send(parent_module_name) @parent_enabled = SiteSetting.public_send(@parent_module_name)
return !@parent_enabled return !@parent_enabled
end end
@ -42,7 +42,7 @@ module DiscourseAi
return( return(
I18n.t( I18n.t(
"discourse_ai.llm.configuration.disable_module_first", "discourse_ai.llm.configuration.disable_module_first",
setting: parent_module_name, setting: @parent_module_name,
) )
) )
end end

View File

@ -0,0 +1,21 @@
# frozen_string_literal: true
RSpec.describe DiscourseAi::Configuration::LlmValidator do
describe "#valid_value?" do
context "when the parent module is enabled and we try to reset the selected model" do
before do
assign_fake_provider_to(:ai_summarization_model)
SiteSetting.ai_summarization_enabled = true
end
it "returns false and displays an error message" do
validator = described_class.new(name: :ai_summarization_model)
value = validator.valid_value?("")
expect(value).to eq(false)
expect(validator.error_message).to include("ai_summarization_enabled")
end
end
end
end