feat: publish the Sandwich Hime source preview
Signed-off-by: Cole Speelman <gamertan@noreply.localhost>
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
package devserver
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestLoadConfigDefaultsAndRejectsUnknownFields(t *testing.T) {
|
||||
t.Parallel()
|
||||
path := filepath.Join(t.TempDir(), "himesan.json")
|
||||
if err := os.WriteFile(path, []byte(`{"version":1,"proxyAddress":"[::1]:0"}`), 0o600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
cfg, err := LoadConfig(path)
|
||||
if err != nil {
|
||||
t.Fatalf("LoadConfig() error = %v", err)
|
||||
}
|
||||
if cfg.GoPackage != "." || cfg.ListenAddressEnv != defaultListenAddressEnv || cfg.HealthPath != "/" {
|
||||
t.Fatalf("LoadConfig() did not apply defaults: %#v", cfg)
|
||||
}
|
||||
|
||||
if err := os.WriteFile(path, []byte(`{"version":1,"mystery":true}`), 0o600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if _, err := LoadConfig(path); err == nil || !strings.Contains(err.Error(), "unknown field") {
|
||||
t.Fatalf("LoadConfig() unknown field error = %v", err)
|
||||
}
|
||||
|
||||
if err := os.WriteFile(path, []byte(`{"proxyAddress":"127.0.0.1:0"}`), 0o600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if _, err := LoadConfig(path); err == nil || !strings.Contains(err.Error(), "version") {
|
||||
t.Fatalf("LoadConfig() missing version error = %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigValidation(t *testing.T) {
|
||||
t.Parallel()
|
||||
tests := []struct {
|
||||
name string
|
||||
mutate func(*Config)
|
||||
}{
|
||||
{"public proxy", func(c *Config) { c.ProxyAddress = "0.0.0.0:7331" }},
|
||||
{"hostname proxy", func(c *Config) { c.ProxyAddress = "localhost:7331" }},
|
||||
{"bad port", func(c *Config) { c.ProxyAddress = "127.0.0.1:http" }},
|
||||
{"bad environment", func(c *Config) { c.ListenAddressEnv = "bad-name" }},
|
||||
{"health query", func(c *Config) { c.HealthPath = "/health?full=1" }},
|
||||
{"empty source roots", func(c *Config) { c.SourceRoots = nil }},
|
||||
{"nul argument", func(c *Config) { c.AppArgs = []string{"a\x00b"} }},
|
||||
}
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
cfg := DefaultConfig()
|
||||
test.mutate(&cfg)
|
||||
if err := cfg.Validate(); err == nil {
|
||||
t.Fatal("Validate() unexpectedly succeeded")
|
||||
}
|
||||
})
|
||||
}
|
||||
for _, address := range []string{"127.0.0.1:0", "127.12.3.4:65535", "[::1]:7331"} {
|
||||
if err := ValidateLoopbackAddress(address); err != nil {
|
||||
t.Errorf("ValidateLoopbackAddress(%q) = %v", address, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user