package wxwork import ( "context" "testing" "code.tczkiot.com/wlw/ai-agent/internal/pkg/config" ) func TestEnabledReadsLatestSettingsWithoutRestart(t *testing.T) { config.SetCurrent(&config.Config{}) values := map[string]string{ "ai_agent_wxwork_enabled": "false", "ai_agent_wxwork_corp_id": "ww-test", "ai_agent_wxwork_corp_secret": "secret", "ai_agent_wxwork_notify_enabled": "false", "ai_agent_wxwork_notify_to_users": "[]", } SetSettingsLoader(func(context.Context, string) (map[string]string, error) { result := make(map[string]string, len(values)) for key, value := range values { result[key] = value } return result, nil }) t.Cleanup(func() { SetSettingsLoader(nil) }) Init() if Enabled() { t.Fatal("Enabled() = true before switch is enabled") } values["ai_agent_wxwork_enabled"] = "true" values["ai_agent_wxwork_notify_enabled"] = "true" values["ai_agent_wxwork_notify_to_users"] = "[8]" if !Enabled() { t.Fatal("Enabled() = false after setting changed to true") } if GetWorkCli() == nil { t.Fatal("GetWorkCli() = nil after setting changed to true") } cfg, err := CurrentConfig() if err != nil { t.Fatalf("CurrentConfig() error = %v", err) } if !cfg.Notify.Enabled || len(cfg.Notify.ToUsers) != 1 || cfg.Notify.ToUsers[0] != 8 { t.Fatalf("CurrentConfig() did not observe latest notify settings: %+v", cfg.Notify) } values["ai_agent_wxwork_enabled"] = "false" if Enabled() { t.Fatal("Enabled() = true after setting changed back to false") } }