Files
VoCat/internal/server/public_ip_api_test.go

34 lines
1.0 KiB
Go

package server
import (
"testing"
"vocat/internal/exportproxy"
)
func TestPublicIPCacheFollowsCurrentICCID(t *testing.T) {
server := &Server{publicIPs: make(map[string]cachedPublicIP)}
want := exportproxy.PublicIPInfo{IP: "203.0.113.8", CountryCode: "GB"}
server.savePublicIP("ec20", "8944100001", want)
got, ok := server.loadPublicIP("ec20", "8944100001")
if !ok || got != want {
t.Fatalf("loadPublicIP() = (%+v, %v), want (%+v, true)", got, ok, want)
}
if _, ok := server.loadPublicIP("ec20", "8944100002"); ok {
t.Fatal("cache survived an ICCID change")
}
if _, ok := server.loadPublicIP("ec20", "8944100001"); ok {
t.Fatal("stale cache was not deleted after an ICCID change")
}
}
func TestPublicIPCacheClearsWhileModemIsResetting(t *testing.T) {
server := &Server{publicIPs: make(map[string]cachedPublicIP)}
server.savePublicIP("ec20", "8944100001", exportproxy.PublicIPInfo{IP: "203.0.113.8", CountryCode: "GB"})
if _, ok := server.loadPublicIP("ec20", ""); ok {
t.Fatal("cache survived a missing live ICCID")
}
}