package configs

import (
	"io/fs"
	"os"
	"testing"

	"github.com/stretchr/testify/assert"
	"gopkg.in/yaml.v3"
)

func TestLoadAlertManagerConfig(t *testing.T) {
	t.Run("normal", func(t *testing.T) {
		config := make(map[string]interface{})

		config["name"] = "alertmanager-operated"
		config["namespace"] = "o11y"
		config["port"] = "web"

		content, err := yaml.Marshal(config)
		assert.NoError(t, err)
		path := "alertmanagerinfo.yaml"
		os.WriteFile(path, content, fs.ModePerm)
		defer os.Remove(path)

		result := LoadAlertManagerConfig(path)
		assert.NotEmpty(t, result)
		assert.Equal(t, "alertmanager-operated", result.Name)
		assert.Equal(t, "o11y", result.NameSpace)
		assert.Equal(t, "web", result.Port)

	})
	t.Run("invalid file", func(t *testing.T) {
		assert.Panics(t, func() {
			LoadAlertManagerConfig("invalid")
		})
	})
}
