1
0

inbound_clients_tuic_test.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package service
  2. import (
  3. "strings"
  4. "testing"
  5. "github.com/mhsanaei/3x-ui/v3/internal/database/model"
  6. )
  7. func TestBuildTargetClientFromSourceTuic(t *testing.T) {
  8. s := &InboundService{}
  9. source := model.Client{
  10. Email: "[email protected]",
  11. ID: "old-uuid",
  12. Password: "old-password",
  13. }
  14. targetInbound := &model.Inbound{
  15. Protocol: model.TUIC,
  16. }
  17. target, err := s.buildTargetClientFromSource(source, targetInbound, "[email protected]", "")
  18. if err != nil {
  19. t.Fatalf("buildTargetClientFromSource failed: %v", err)
  20. }
  21. if target.ID == "" || target.ID == "old-uuid" {
  22. t.Fatalf("expected new UUID for TUIC client, got %q", target.ID)
  23. }
  24. if target.Password == "" || target.Password == "old-password" {
  25. t.Fatalf("expected new password for TUIC client, got %q", target.Password)
  26. }
  27. }
  28. func TestAddInboundTuicClientValidation(t *testing.T) {
  29. setupConflictDB(t)
  30. s := &InboundService{}
  31. ib := &model.Inbound{
  32. Tag: "tuic-test-1",
  33. Protocol: model.TUIC,
  34. Settings: `{"clients":[{"id":"uuid-1","password":""}]}`,
  35. }
  36. _, _, err := s.AddInbound(ib)
  37. if err == nil || strings.TrimSpace(err.Error()) != "tuic client requires a password" {
  38. t.Fatalf("expected 'tuic client requires a password' error, got %v", err)
  39. }
  40. ibNoID := &model.Inbound{
  41. Tag: "tuic-test-2",
  42. Protocol: model.TUIC,
  43. Settings: `{"clients":[{"id":"","password":"pass"}]}`,
  44. }
  45. _, _, errNoID := s.AddInbound(ibNoID)
  46. if errNoID == nil || strings.TrimSpace(errNoID.Error()) != "empty client ID" {
  47. t.Fatalf("expected 'empty client ID' error, got %v", errNoID)
  48. }
  49. ibNoEmail := &model.Inbound{
  50. Tag: "tuic-test-3",
  51. Protocol: model.TUIC,
  52. Settings: `{"clients":[{"id":"uuid-3","password":"pass","email":""}]}`,
  53. }
  54. _, _, errNoEmail := s.AddInbound(ibNoEmail)
  55. if errNoEmail == nil || strings.TrimSpace(errNoEmail.Error()) != "empty client email" {
  56. t.Fatalf("expected 'empty client email' error, got %v", errNoEmail)
  57. }
  58. }