package config import ( "path/filepath" "testing" "git.eeqj.de/sneak/smartconfig" ) // TestExampleConfigAllowlistsNoHost loads configs/config.example.yml // with a real signing key, as Getting Started in README.md has it copied // and edited, and checks that it allowlists no host: every image on an // allowlisted host is served to anyone without a signature. func TestExampleConfigAllowlistsNoHost(t *testing.T) { t.Setenv("PIXA_SIGNING_KEY", validTestSigningKey) examplePath := filepath.Join("..", "..", "configs", "config.example.yml") sc, err := loadTestConfig(examplePath) if err != nil { t.Fatalf("failed to load %s: %v", examplePath, err) } c, err := newFromSmartConfig(sc) if err != nil { t.Fatalf("%s is not a valid config: %v", examplePath, err) } t.Logf("allowlist_hosts in %s: %v", examplePath, c.AllowlistHosts) if len(c.AllowlistHosts) != 0 { t.Errorf("%s allowlists %v, want no host", examplePath, c.AllowlistHosts) } } // loadTestConfig is a helper to load a config file for testing. func loadTestConfig(path string) (*smartconfig.Config, error) { return smartconfig.NewFromConfigPath(path) }