40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
|  | package validators_test | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"errors" | ||
|  | 	"fmt" | ||
|  | 	"testing" | ||
|  | 
 | ||
|  | 	validation "github.com/go-ozzo/ozzo-validation/v4" | ||
|  | 	"github.com/pocketbase/pocketbase/core/validators" | ||
|  | ) | ||
|  | 
 | ||
|  | func TestJoinValidationErrors(t *testing.T) { | ||
|  | 	scenarios := []struct { | ||
|  | 		errA     error | ||
|  | 		errB     error | ||
|  | 		expected string | ||
|  | 	}{ | ||
|  | 		{nil, nil, "<nil>"}, | ||
|  | 		{errors.New("abc"), nil, "abc"}, | ||
|  | 		{nil, errors.New("abc"), "abc"}, | ||
|  | 		{errors.New("abc"), errors.New("456"), "abc\n456"}, | ||
|  | 		{validation.Errors{"test1": errors.New("test1_err")}, nil, "test1: test1_err."}, | ||
|  | 		{nil, validation.Errors{"test2": errors.New("test2_err")}, "test2: test2_err."}, | ||
|  | 		{validation.Errors{}, errors.New("456"), "\n456"}, | ||
|  | 		{errors.New("456"), validation.Errors{}, "456\n"}, | ||
|  | 		{validation.Errors{"test1": errors.New("test1_err")}, errors.New("456"), "test1: test1_err."}, | ||
|  | 		{errors.New("456"), validation.Errors{"test2": errors.New("test2_err")}, "test2: test2_err."}, | ||
|  | 		{validation.Errors{"test1": errors.New("test1_err")}, validation.Errors{"test2": errors.New("test2_err")}, "test1: test1_err; test2: test2_err."}, | ||
|  | 	} | ||
|  | 
 | ||
|  | 	for i, s := range scenarios { | ||
|  | 		t.Run(fmt.Sprintf("%d_%#T_%T", i, s.errA, s.errB), func(t *testing.T) { | ||
|  | 			result := fmt.Sprintf("%v", validators.JoinValidationErrors(s.errA, s.errB)) | ||
|  | 			if result != s.expected { | ||
|  | 				t.Fatalf("Expected\n%v\ngot\n%v", s.expected, result) | ||
|  | 			} | ||
|  | 		}) | ||
|  | 	} | ||
|  | } |