Files
mailgoserver/internal/tlsutil/reloader_test.go
T

49 lines
1.1 KiB
Go
Raw Normal View History

2026-08-12 21:14:19 +01:00
package tlsutil
import (
"os"
"path/filepath"
"testing"
)
func TestCertReloaderReload(t *testing.T) {
dir := t.TempDir()
certFile := filepath.Join(dir, "server.crt")
keyFile := filepath.Join(dir, "server.key")
if err := GenerateSelfSignedCert(certFile, keyFile); err != nil {
t.Fatal(err)
}
reloader, err := NewCertReloader(certFile, keyFile)
if err != nil {
t.Fatal(err)
}
certA, err := reloader.GetCertificate(nil)
if err != nil {
t.Fatal(err)
}
// Overwrite with a fresh cert (delete first, since GenerateSelfSignedCert is
// skip-if-exists).
if err := os.Remove(certFile); err != nil {
t.Fatal(err)
}
if err := os.Remove(keyFile); err != nil {
t.Fatal(err)
}
if err := GenerateSelfSignedCert(certFile, keyFile); err != nil {
t.Fatal(err)
}
if err := reloader.Reload(); err != nil {
t.Fatal(err)
}
certB, err := reloader.GetCertificate(nil)
if err != nil {
t.Fatal(err)
}
if string(certA.Certificate[0]) == string(certB.Certificate[0]) {
t.Fatal("expected Reload to pick up a different certificate, got the same bytes")
}
}