model/mcp_enabled_atomic_test.go
Rama master · réplica de lectura del repositorio original.
package model
import "testing"
func TestSetMCPEnabledUsesAtomicAsSourceOfTruth(t *testing.T) {
c := &Config{}
if c.MCPEnabled() {
t.Fatal("zero-value Config must report MCP disabled")
}
c.SetMCPEnabled(true)
if !c.MCPEnabled() {
t.Fatal("MCPEnabled() must observe SetMCPEnabled(true)")
}
c.SetMCPEnabled(false)
if c.MCPEnabled() {
t.Fatal("MCPEnabled() must observe SetMCPEnabled(false)")
}
}
// save() 在 marshal 前从 atomic 同步明文 EnableMCP 字段,因此持久化/JSON 仍拿到
// 正确值;运行时 SetMCPEnabled 不直接写该字段以避免与 listConfig 的整体拷贝竞争。
func TestSaveSyncsEnableMCPFieldFromAtomic(t *testing.T) {
c := &Config{}
c.filePath = t.TempDir() + "/config.yaml"
c.SetMCPEnabled(true)
if err := c.save(); err != nil {
t.Fatalf("save: %v", err)
}
if !c.EnableMCP {
t.Fatal("save() must sync EnableMCP field from the atomic mirror for persistence")
}
c.SetMCPEnabled(false)
if err := c.save(); err != nil {
t.Fatalf("save: %v", err)
}
if c.EnableMCP {
t.Fatal("save() must clear EnableMCP field when the atomic mirror is false")
}
}