package validate import ( "errors" "testing" errs "gateway/internal/library/errors" "gateway/internal/library/errors/code" ) func TestValidationErrors_AsErrors(t *testing.T) { t.Parallel() ve := ValidationErrors{{Field: "id", Message: "id is required"}} var target ValidationErrors if !errors.As(ve, &target) { t.Fatal("errors.As should match ValidationErrors") } got, ok := AsErrors(ve) if !ok || len(got) != 1 { t.Fatalf("AsErrors = %v, %v", got, ok) } } func TestValidationErrors_ToBusinessError(t *testing.T) { t.Parallel() ve := ValidationErrors{{Field: "email", Message: "invalid email"}} be := ve.ToBusinessError(code.Facade) if be == nil { t.Fatal("expected business error") } if be.Category() != code.InputInvalidFormat { t.Fatalf("category = %d, want %d", be.Category(), code.InputInvalidFormat) } if errs.FromError(be) == nil { t.Fatal("FromError should unwrap") } }