tls_client_invalidate_test.go 819 B

12345678910111213141516171819202122232425
  1. package runtime
  2. import (
  3. "testing"
  4. "github.com/mhsanaei/3x-ui/v3/internal/database/model"
  5. )
  6. // Only a later call for the same node pruned its pooled client, so a deleted
  7. // node kept its client and transport cached for the life of the process.
  8. func TestInvalidateNodeDropsItsCachedHTTPClient(t *testing.T) {
  9. node := &model.Node{Id: 8801, Address: "node.example.test", Port: 443, Scheme: "https", TlsVerifyMode: "skip"}
  10. if _, err := HTTPClientForNode(node, ""); err != nil {
  11. t.Fatalf("HTTPClientForNode: %v", err)
  12. }
  13. if got := nodeClientEntries(node.Id); got != 1 {
  14. t.Fatalf("cached clients before invalidation = %d, want 1", got)
  15. }
  16. NewManager(LocalDeps{}).InvalidateNode(node.Id)
  17. if got := nodeClientEntries(node.Id); got != 0 {
  18. t.Fatalf("cached clients after InvalidateNode = %d, want 0", got)
  19. }
  20. }