internal/utils/domain_test.go

package utils

import (
	"testing"
)

func TestGetBaseDomain(t *testing.T) {
	tests := []struct {
		fqdn     string
		expected string
	}{
		{"172-235-26-191.ip.linodeusercontent.com", "linodeusercontent.com"},
		{"ec2-18-119-11-223.us-east-2.compute.amazonaws.com", "amazonaws.com"},
		{"ip.linodeusercontent.com", "linodeusercontent.com"},
		{"linodeusercontent.com", "linodeusercontent.com"},
		{"google.com", "google.com"},
		{"sub.google.com", "google.com"},
		{"one.two.three.example.co.uk", "example.co.uk"},
		{"something.cloud.google.com", "google.com"},
		{"", ""},
		{"localhost", "localhost"},
		{"127.0.0.1", "127.0.0.1"},
		{"random-host", "random-host"},
	}

	for _, tt := range tests {
		t.Run(tt.fqdn, func(t *testing.T) {
			actual := GetBaseDomain(tt.fqdn)
			if actual != tt.expected {
				t.Errorf("GetBaseDomain(%q) = %q, want %q", tt.fqdn, actual, tt.expected)
			}
		})
	}
}