feat(scum): add file config workbench
This commit is contained in:
@@ -35,6 +35,28 @@ func TestValidateGamePluginManifestRegistration(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateGamePluginManifestRegistrationValidatesLogicalFileWorkspace(t *testing.T) {
|
||||
registration := validGamePluginManifestRegistration()
|
||||
registration.Manifest.FileWorkspace = domain.PluginFileWorkspace{
|
||||
DefaultDirectoryKey: "config",
|
||||
Directories: []domain.PluginLogicalDirectory{{Key: "config", Label: "配置", Scope: "config"}},
|
||||
Files: []domain.PluginLogicalFile{{Key: "settings", DirectoryKey: "config", Label: "Settings.ini", Kind: "config", Editable: true}},
|
||||
ConfigFields: []domain.PluginConfigField{{Key: "max-players", FileKey: "settings", ConfigKey: "MaxPlayers", Label: "最大玩家数", Description: "玩家上限", Control: "number", Minimum: 1, Maximum: 128, RestartImpact: "restart-required"}},
|
||||
}
|
||||
if err := ValidateGamePluginManifestRegistration(registration); err != nil {
|
||||
t.Fatalf("expected safe logical file workspace: %v", err)
|
||||
}
|
||||
registration.Manifest.FileWorkspace.Files[0].DirectoryKey = "../host"
|
||||
if err := ValidateGamePluginManifestRegistration(registration); err == nil {
|
||||
t.Fatal("expected unsafe logical directory reference to fail")
|
||||
}
|
||||
registration.Manifest.FileWorkspace.Files[0].DirectoryKey = "config"
|
||||
registration.Manifest.FileWorkspace.Files[0].Editable = false
|
||||
if err := ValidateGamePluginManifestRegistration(registration); err == nil {
|
||||
t.Fatal("expected a configuration field without an editable owning file to fail")
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateGamePluginManifestRegistrationRejectsUnsafeRequests(t *testing.T) {
|
||||
registration := validGamePluginManifestRegistration()
|
||||
registration.Manifest.Description = "requires direct run socket and raw AI key material"
|
||||
|
||||
Reference in New Issue
Block a user