setting_service_user_error_persist_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. //go:build unit
  2. package service
  3. import (
  4. "context"
  5. "testing"
  6. "github.com/Wei-Shaw/sub2api/internal/config"
  7. "github.com/stretchr/testify/require"
  8. )
  9. // TestAllowUserViewErrorRequests_PersistsToDB 验证 buildSystemSettingsUpdates 会将
  10. // AllowUserViewErrorRequests 写入 updates map(即最终落库),这是对 bug 的回归测试:
  11. // 该字段曾因漏写而永远无法持久化。
  12. func TestAllowUserViewErrorRequests_PersistsToDB(t *testing.T) {
  13. // bmUpdateRepoStub 已在 setting_service_backend_mode_test.go 中定义(同 package)。
  14. // 本测试不触及需要 GetValue 的设置项,getValueFn 设为 nil 即可,无需 stub。
  15. repo := &bmUpdateRepoStub{}
  16. svc := NewSettingService(repo, &config.Config{})
  17. err := svc.UpdateSettings(context.Background(), &SystemSettings{
  18. AllowUserViewErrorRequests: true,
  19. })
  20. require.NoError(t, err)
  21. // 断言 updates 中含有该 key,且值为 "true"
  22. val, ok := repo.updates[SettingKeyAllowUserViewErrorRequests]
  23. require.True(t, ok, "updates map 中应包含 SettingKeyAllowUserViewErrorRequests,但未找到(bug:buildSystemSettingsUpdates 漏写)")
  24. require.Equal(t, "true", val)
  25. }