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
}