Fix tests and make URLs optional in config

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
Gabriel Adrian Samfira 2024-06-06 17:23:20 +00:00
parent 9748aa47af
commit 3992f97d8c
7 changed files with 80 additions and 93 deletions

View file

@ -212,22 +212,24 @@ type Default struct {
}
func (d *Default) Validate() error {
if d.CallbackURL == "" {
return fmt.Errorf("missing callback_url")
}
_, err := url.Parse(d.CallbackURL)
if err != nil {
return fmt.Errorf("invalid callback_url: %w", err)
if d.CallbackURL != "" {
_, err := url.ParseRequestURI(d.CallbackURL)
if err != nil {
return fmt.Errorf("invalid callback_url: %w", err)
}
}
if d.MetadataURL == "" {
return fmt.Errorf("missing metadata_url")
if d.MetadataURL != "" {
if _, err := url.ParseRequestURI(d.MetadataURL); err != nil {
return fmt.Errorf("invalid metadata_url: %w", err)
}
}
if _, err := url.Parse(d.MetadataURL); err != nil {
return fmt.Errorf("invalid metadata_url: %w", err)
if d.WebhookURL != "" {
if _, err := url.ParseRequestURI(d.WebhookURL); err != nil {
return fmt.Errorf("invalid webhook_url: %w", err)
}
}
return nil
}

View file

@ -143,20 +143,20 @@ func TestDefaultSectionConfig(t *testing.T) {
errString: "",
},
{
name: "CallbackURL cannot be empty",
name: "CallbackURL must be valid if set",
cfg: Default{
CallbackURL: "",
CallbackURL: "bogus_url",
MetadataURL: cfg.MetadataURL,
},
errString: "missing callback_url",
errString: "invalid callback_url",
},
{
name: "MetadataURL cannot be empty",
name: "MetadataURL must be valid if set",
cfg: Default{
CallbackURL: cfg.CallbackURL,
MetadataURL: "",
MetadataURL: "bogus_url",
},
errString: "missing metadata_url",
errString: "invalid metadata_url",
},
}