test(config,git,logger): add some test functions
This commit is contained in:
parent
316e5de757
commit
1356128a7b
16 changed files with 387 additions and 25 deletions
|
@ -7,6 +7,15 @@ import (
|
|||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
var (
|
||||
ErrInvalidGrafanaURL = errors.New("invalid grafana URL, must not be blank")
|
||||
ErrInvalidAuthToken = errors.New("invalid auth token for grafana, must not be blank")
|
||||
ErrInvalidRepoURL = errors.New("invalid repo url for git, must not be blank")
|
||||
ErrInvalidGitUser = errors.New("invalid username for git, must not be blank")
|
||||
ErrInvalidGitPass = errors.New("invalid password for git, must not be blank")
|
||||
ErrInvalidBranchName = errors.New("invalid branch name for git, must not be blank")
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Debug bool
|
||||
ForceCommits bool
|
||||
|
@ -29,27 +38,27 @@ func (c *Config) Validate() []error {
|
|||
var errs []error
|
||||
|
||||
if c.GrafanaURL == "" {
|
||||
errs = append(errs, errors.New("invalid grafana URL, must not be blank"))
|
||||
errs = append(errs, ErrInvalidGrafanaURL)
|
||||
}
|
||||
|
||||
if c.GrafanaToken == "" {
|
||||
errs = append(errs, errors.New("invalid auth token for grafana, must not be blank"))
|
||||
errs = append(errs, ErrInvalidAuthToken)
|
||||
}
|
||||
|
||||
if c.GitRepo == "" {
|
||||
errs = append(errs, errors.New("invalid repo url for git, must not be blank"))
|
||||
errs = append(errs, ErrInvalidRepoURL)
|
||||
}
|
||||
|
||||
if c.GitUser == "" {
|
||||
errs = append(errs, errors.New("invalid username for git, must not be blank"))
|
||||
errs = append(errs, ErrInvalidGitUser)
|
||||
}
|
||||
|
||||
if c.GitPass == "" {
|
||||
errs = append(errs, errors.New("invalid password for git, must not be blank"))
|
||||
errs = append(errs, ErrInvalidGitPass)
|
||||
}
|
||||
|
||||
if c.GitBranch == "" {
|
||||
errs = append(errs, errors.New("invalid branch name for git, must not be blank"))
|
||||
errs = append(errs, ErrInvalidBranchName)
|
||||
}
|
||||
|
||||
return errs
|
||||
|
|
40
internal/config/config_test.go
Normal file
40
internal/config/config_test.go
Normal file
|
@ -0,0 +1,40 @@
|
|||
package config_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.ar21.de/yolokube/grafana-backuper/internal/config"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestConfig_Validate_MissingFields(t *testing.T) {
|
||||
cfg := config.Config{}
|
||||
|
||||
errs := cfg.Validate()
|
||||
assert.Len(t, errs, 6) // Expecting 6 errors since all required fields are missing
|
||||
}
|
||||
|
||||
func TestConfig_Validate_AllFieldsPresent(t *testing.T) {
|
||||
cfg := config.Config{
|
||||
GrafanaURL: "http://grafana.example.com",
|
||||
GrafanaToken: "sometoken",
|
||||
GitRepo: "https://github.com/user/repo",
|
||||
GitUser: "username",
|
||||
GitPass: "password",
|
||||
GitBranch: "main",
|
||||
}
|
||||
|
||||
errs := cfg.Validate()
|
||||
assert.Empty(t, errs) // No errors should be returned when all fields are valid
|
||||
}
|
||||
|
||||
func TestConfig_Validate_PartiallyPopulated(t *testing.T) {
|
||||
cfg := config.Config{
|
||||
GrafanaURL: "http://grafana.example.com",
|
||||
GitRepo: "https://github.com/user/repo",
|
||||
GitUser: "username",
|
||||
}
|
||||
|
||||
errs := cfg.Validate()
|
||||
assert.Len(t, errs, 3) // Expecting 3 errors for missing GrafanaToken, GitPass, and GitBranch
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue