Files
browser/platform/domain/resources_test.go
T
2026-07-11 14:56:10 +08:00

37 lines
1.3 KiB
Go

package domain
import "testing"
func TestCopyHelpersIsolateSlices(t *testing.T) {
plugin := GamePlugin{
ID: "server.scum",
RequiredRunCapabilities: []string{"process.start", "logs.read"},
DeclaredPermissions: []string{"server.logs.read"},
Pages: []GamePluginPage{
{Key: "logs", Permissions: []string{"server.logs.read"}},
},
AIPurposes: []string{"logs.diagnose"},
}
copy := CopyGamePlugin(plugin)
copy.RequiredRunCapabilities[0] = "files.read"
copy.DeclaredPermissions[0] = "ai.invoke"
copy.Pages[0].Permissions[0] = "ai.invoke"
copy.AIPurposes[0] = "config.suggest"
if plugin.RequiredRunCapabilities[0] != "process.start" {
t.Fatalf("expected copied plugin slice mutation not to affect original: %+v", plugin.RequiredRunCapabilities)
}
if plugin.DeclaredPermissions[0] != "server.logs.read" || plugin.Pages[0].Permissions[0] != "server.logs.read" || plugin.AIPurposes[0] != "logs.diagnose" {
t.Fatalf("expected copied plugin registry metadata mutation not to affect original: %+v", plugin)
}
provider := AIProvider{ID: "ai.openai", Models: []string{"gpt-4.1"}}
providerCopy := CopyAIProvider(provider)
providerCopy.Models[0] = "gpt-4.1-mini"
if provider.Models[0] != "gpt-4.1" {
t.Fatalf("expected copied provider slice mutation not to affect original: %+v", provider.Models)
}
}