package domain import ( "testing" "github.com/stretchr/testify/assert" ) func TestErrOtpNotFound_Error(t *testing.T) { tests := []struct { name string uuid string want string }{ { name: "returns formatted error message", uuid: "123e4567-e89b-12d3-a456-426614174000", want: "OTP request not found for UUID: 123e4567-e89b-12d3-a456-426614174000", }, { name: "handles empty uuid", uuid: "", want: "OTP request not found for UUID: ", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := ErrOtpNotFound{Uuid: tt.uuid} assert.Equal(t, tt.want, err.Error()) }) } } func TestErrUserNotFound_Error(t *testing.T) { tests := []struct { name string phoneNumber string want string }{ { name: "returns formatted error message", phoneNumber: "+1234567890", want: "User not found with phone number: +1234567890", }, { name: "handles empty phone number", phoneNumber: "", want: "User not found with phone number: ", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := ErrUserNotFound{PhoneNumber: tt.phoneNumber} assert.Equal(t, tt.want, err.Error()) }) } } func TestErrOtpInvalid_Error(t *testing.T) { tests := []struct { name string code string uuid string want string }{ { name: "returns formatted error message", code: "123456", uuid: "123e4567-e89b-12d3-a456-426614174000", want: "Invalid OTP code: 123456 for UUID: 123e4567-e89b-12d3-a456-426614174000", }, { name: "handles empty values", code: "", uuid: "", want: "Invalid OTP code: for UUID: ", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := ErrOtpInvalid{Code: tt.code, Uuid: tt.uuid} assert.Equal(t, tt.want, err.Error()) }) } } func TestErrInvalidHydraAccept_Error(t *testing.T) { tests := []struct { name string message string uuid string want string }{ { name: "returns formatted error message", message: "Invalid response", uuid: "123e4567-e89b-12d3-a456-426614174000", want: "Invalid Hydra accept request: Invalid response for UUID: 123e4567-e89b-12d3-a456-426614174000", }, { name: "handles empty values", message: "", uuid: "", want: "Invalid Hydra accept request: for UUID: ", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := ErrInvalidHydraAccept{Message: tt.message, Uuid: tt.uuid} assert.Equal(t, tt.want, err.Error()) }) } } func TestErrInvalidPhoneNumber_Error(t *testing.T) { tests := []struct { name string phoneNumber string err error want string }{ { name: "returns formatted error message with nested error", phoneNumber: "invalid", err: assert.AnError, want: "Invalid phone number: invalid, error: assert.AnError general error for testing", }, { name: "handles empty phone number", phoneNumber: "", err: assert.AnError, want: "Invalid phone number: , error: assert.AnError general error for testing", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := ErrInvalidPhoneNumber{PhoneNumber: tt.phoneNumber, Err: tt.err} assert.Equal(t, tt.want, err.Error()) }) } }