1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
package api
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestGQLErrorMatch(t *testing.T) {
tests := []struct {
name string
error GQLError
kind string
path string
wantMatch bool
}{
{
name: "matches path and type",
error: GQLError{Errors: []GQLErrorItem{
{Path: []interface{}{"repository", "issue"}, Type: "NOT_FOUND"},
}},
kind: "NOT_FOUND",
path: "repository.issue",
wantMatch: true,
},
{
name: "matches base path and type",
error: GQLError{Errors: []GQLErrorItem{
{Path: []interface{}{"repository", "issue"}, Type: "NOT_FOUND"},
}},
kind: "NOT_FOUND",
path: "repository.",
wantMatch: true,
},
{
name: "does not match path but matches type",
error: GQLError{Errors: []GQLErrorItem{
{Path: []interface{}{"repository", "issue"}, Type: "NOT_FOUND"},
}},
kind: "NOT_FOUND",
path: "label.title",
wantMatch: false,
},
{
name: "matches path but not type",
error: GQLError{Errors: []GQLErrorItem{
{Path: []interface{}{"repository", "issue"}, Type: "NOT_FOUND"},
}},
kind: "UNKNOWN",
path: "repository.issue",
wantMatch: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equal(t, tt.wantMatch, tt.error.Match(tt.kind, tt.path))
})
}
}
|