mirror of
https://github.com/we-promise/sure.git
synced 2026-04-19 12:04:08 +00:00
Fixes & Improvements (#316)
* Some improvements - Fix issue with lunch flow accounts that were imported - Remove the period comparison section from reports * Add cleanup migration * FIX for dynamic config * Fix linter * FIX settings setter Reuse the base class’ atomic setter to leverage its locking and cache invalidation. * Make upsert atomic * Remove migration file Signed-off-by: soky srm <sokysrm@gmail.com> * Delete db/migrate/20251111094448_migrate_dynamic_fields_to_individual_entries.rb Signed-off-by: soky srm <sokysrm@gmail.com> * Fix cache reset * Revert "Remove migration file" This reverts commit1f2a21ef58. * Revert "Delete db/migrate/20251111094448_migrate_dynamic_fields_to_individual_entries.rb" This reverts commit29dcaaafb2. * Fix Plaid initialiser --------- Signed-off-by: soky srm <sokysrm@gmail.com>
This commit is contained in:
@@ -7,6 +7,11 @@ class SettingTest < ActiveSupport::TestCase
|
||||
Setting.openai_model = nil
|
||||
end
|
||||
|
||||
teardown do
|
||||
# Clean up dynamic fields after each test
|
||||
Setting.where("var LIKE ?", "dynamic:%").destroy_all
|
||||
end
|
||||
|
||||
test "validate_openai_config! passes when both uri base and model are set" do
|
||||
assert_nothing_raised do
|
||||
Setting.validate_openai_config!(uri_base: "https://api.example.com", model: "gpt-4")
|
||||
@@ -61,4 +66,69 @@ class SettingTest < ActiveSupport::TestCase
|
||||
Setting.validate_openai_config!(uri_base: "", model: nil)
|
||||
end
|
||||
end
|
||||
|
||||
# Dynamic field tests
|
||||
test "can set and get dynamic fields" do
|
||||
Setting["custom_key"] = "custom_value"
|
||||
assert_equal "custom_value", Setting["custom_key"]
|
||||
end
|
||||
|
||||
test "can set and get multiple dynamic fields independently" do
|
||||
Setting["key1"] = "value1"
|
||||
Setting["key2"] = "value2"
|
||||
Setting["key3"] = "value3"
|
||||
|
||||
assert_equal "value1", Setting["key1"]
|
||||
assert_equal "value2", Setting["key2"]
|
||||
assert_equal "value3", Setting["key3"]
|
||||
end
|
||||
|
||||
test "setting nil value deletes dynamic field" do
|
||||
Setting["temp_key"] = "temp_value"
|
||||
assert_equal "temp_value", Setting["temp_key"]
|
||||
|
||||
Setting["temp_key"] = nil
|
||||
assert_nil Setting["temp_key"]
|
||||
end
|
||||
|
||||
test "can delete dynamic field" do
|
||||
Setting["delete_key"] = "delete_value"
|
||||
assert_equal "delete_value", Setting["delete_key"]
|
||||
|
||||
value = Setting.delete("delete_key")
|
||||
assert_equal "delete_value", value
|
||||
assert_nil Setting["delete_key"]
|
||||
end
|
||||
|
||||
test "key? returns true for existing dynamic field" do
|
||||
Setting["exists_key"] = "exists_value"
|
||||
assert Setting.key?("exists_key")
|
||||
end
|
||||
|
||||
test "key? returns false for non-existing dynamic field" do
|
||||
assert_not Setting.key?("nonexistent_key")
|
||||
end
|
||||
|
||||
test "dynamic_keys returns all dynamic field keys" do
|
||||
Setting["dynamic1"] = "value1"
|
||||
Setting["dynamic2"] = "value2"
|
||||
|
||||
keys = Setting.dynamic_keys
|
||||
assert_includes keys, "dynamic1"
|
||||
assert_includes keys, "dynamic2"
|
||||
end
|
||||
|
||||
test "declared fields take precedence over dynamic fields" do
|
||||
# Try to set a declared field using bracket notation
|
||||
Setting["openai_model"] = "custom-model"
|
||||
assert_equal "custom-model", Setting["openai_model"]
|
||||
assert_equal "custom-model", Setting.openai_model
|
||||
end
|
||||
|
||||
test "cannot delete declared fields" do
|
||||
Setting.openai_model = "test-model"
|
||||
result = Setting.delete("openai_model")
|
||||
assert_nil result
|
||||
assert_equal "test-model", Setting.openai_model
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user