package main

import (
	"testing"

	"github.com/stretchr/testify/require"
	"go.uber.org/zap/zaptest"
)

func TestValidateDomains(t *testing.T) {
	inputDomains := []string{
		"s3dev.frostfs.devenv",
		"s3dev.<invalid>.frostfs.devenv",
		"s3dev.<wildcard>.frostfs.devenv",
		"s3dev.<wildcard.frostfs.devenv",
		"s3dev.wildcard>.frostfs.devenv",
		"s3dev.<wild.card>.frostfs.devenv",
		"<invalid>.frostfs.devenv",
		"<wildcard>.frostfs.devenv>",
		"<wildcard>.frostfs.devenv",
		"s3dev.fro<stfs.devenv",
		"<wildcard>.dev.<wildcard>.frostfs.devenv",
		"<wildcard>.dev.<wildc>ard>.frostfs.devenv",
	}
	expectedDomains := []string{
		"s3dev.frostfs.devenv",
		"s3dev.<wildcard>.frostfs.devenv",
		"<wildcard>.frostfs.devenv",
		"<wildcard>.dev.<wildcard>.frostfs.devenv",
	}

	actualDomains := validateDomains(inputDomains, zaptest.NewLogger(t))
	require.Equal(t, expectedDomains, actualDomains)
}