mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-03-19 22:19:23 +02:00
63 lines
1.2 KiB
Go
63 lines
1.2 KiB
Go
package validators_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/pocketbase/pocketbase/core/validators"
|
|
)
|
|
|
|
func Equal(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
strA := "abc"
|
|
strB := "abc"
|
|
strC := "123"
|
|
var strNilPtr *string
|
|
var strNilPtr2 *string
|
|
|
|
scenarios := []struct {
|
|
valA any
|
|
valB any
|
|
expectError bool
|
|
}{
|
|
{nil, nil, false},
|
|
{"", "", false},
|
|
{"", "456", true},
|
|
{"123", "", true},
|
|
{"123", "456", true},
|
|
{"123", "123", false},
|
|
{true, false, true},
|
|
{false, true, true},
|
|
{false, false, false},
|
|
{true, true, false},
|
|
{0, 0, false},
|
|
{0, 1, true},
|
|
{1, 2, true},
|
|
{1, 1, false},
|
|
{&strA, &strA, false},
|
|
{&strA, &strB, false},
|
|
{&strA, &strC, true},
|
|
{"abc", &strA, false},
|
|
{&strA, "abc", false},
|
|
{"abc", &strC, true},
|
|
{"test", 123, true},
|
|
{nil, 123, true},
|
|
{nil, strA, true},
|
|
{nil, &strA, true},
|
|
{nil, strNilPtr, false},
|
|
{strNilPtr, strNilPtr2, false},
|
|
}
|
|
|
|
for i, s := range scenarios {
|
|
t.Run(fmt.Sprintf("%d_%v_%v", i, s.valA, s.valB), func(t *testing.T) {
|
|
err := validators.Equal(s.valA)(s.valB)
|
|
|
|
hasErr := err != nil
|
|
if hasErr != s.expectError {
|
|
t.Fatalf("Expected hasErr to be %v, got %v (%v)", s.expectError, hasErr, err)
|
|
}
|
|
})
|
|
}
|
|
}
|