Pulse/internal/api/router_arch_test.go
rcourtman c406dcaf4b test: Add tests for API helper functions
- isRecentlyAutoRegistered: expiry logic, cleanup behavior
- clearAutoRegistered: key deletion, empty input handling
- normalizeDockerAgentArch: all arch variants, case handling, trimming
2025-12-01 21:33:45 +00:00

70 lines
1.9 KiB
Go

package api
import "testing"
func TestNormalizeDockerAgentArch(t *testing.T) {
tests := []struct {
name string
input string
expected string
}{
// Empty string
{"empty string", "", ""},
// amd64 variants
{"linux-amd64", "linux-amd64", "linux-amd64"},
{"amd64", "amd64", "linux-amd64"},
{"x86_64", "x86_64", "linux-amd64"},
{"x86-64", "x86-64", "linux-amd64"},
// arm64 variants
{"linux-arm64", "linux-arm64", "linux-arm64"},
{"arm64", "arm64", "linux-arm64"},
{"aarch64", "aarch64", "linux-arm64"},
// armv7 variants
{"linux-armv7", "linux-armv7", "linux-armv7"},
{"armv7", "armv7", "linux-armv7"},
{"armv7l", "armv7l", "linux-armv7"},
{"armhf", "armhf", "linux-armv7"},
// armv6 variants
{"linux-armv6", "linux-armv6", "linux-armv6"},
{"armv6", "armv6", "linux-armv6"},
{"armv6l", "armv6l", "linux-armv6"},
// 386 variants
{"linux-386", "linux-386", "linux-386"},
{"386", "386", "linux-386"},
{"i386", "i386", "linux-386"},
{"i686", "i686", "linux-386"},
// Unknown architecture
{"unknown arch", "unknown", ""},
{"invalid arch", "powerpc", ""},
{"mips", "mips", ""},
// Case insensitivity
{"AMD64 uppercase", "AMD64", "linux-amd64"},
{"X86_64 uppercase", "X86_64", "linux-amd64"},
{"AARCH64 uppercase", "AARCH64", "linux-arm64"},
{"ARMV7 uppercase", "ARMV7", "linux-armv7"},
{"mixed case LinuX-AmD64", "LinuX-AmD64", "linux-amd64"},
// Whitespace trimming
{"leading space", " amd64", "linux-amd64"},
{"trailing space", "amd64 ", "linux-amd64"},
{"both spaces", " amd64 ", "linux-amd64"},
{"tabs", "\tamd64\t", "linux-amd64"},
{"mixed whitespace", " \t arm64 \t ", "linux-arm64"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := normalizeDockerAgentArch(tt.input)
if result != tt.expected {
t.Errorf("normalizeDockerAgentArch(%q) = %q, want %q", tt.input, result, tt.expected)
}
})
}
}