openmeter / pkg /models /errors_test.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 9)
fea99b3 verified
Raw
History Blame Contribute Delete
1.64 kB
package models
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
)
func TestErrorWrappers(t *testing.T) {
tests := []struct {
name string
err error
expectedErrString string
}{
{
name: "prefix",
err: ErrorWithFieldPrefix(
NewFieldSelectorGroup(
NewFieldSelector("plan").
WithExpression(NewMultiFieldAttrValue(
NewFieldAttrValue("key", "pro"),
NewFieldAttrValue("version", "1"),
)),
),
ErrorWithFieldPrefix(
NewFieldSelectorGroup(
NewFieldSelector("phases").
WithExpression(NewFieldAttrValue("key", "trial")),
),
ErrorWithFieldPrefix(
NewFieldSelectorGroup(
NewFieldSelector("rateCards").
WithExpression(NewFieldAttrValue("key", "storage")),
),
errors.New("critical error"),
),
),
),
expectedErrString: `plan[key=pro, version=1]: phases[key=trial]: rateCards[key=storage]: critical error`,
},
{
name: "component",
err: ErrorWithComponent("openmeter",
ErrorWithFieldPrefix(
NewFieldSelectorGroup(NewFieldSelector("plan").
WithExpression(NewMultiFieldAttrValue(
NewFieldAttrValue("key", "pro"),
NewFieldAttrValue("version", "1"),
)),
),
errors.New("critical error"),
)),
expectedErrString: `openmeter: plan[key=pro, version=1]: critical error`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
actual := tt.err.Error()
t.Logf("actual error: %s", actual)
assert.Equalf(t, tt.expectedErrString, actual, "error string mismatch for test case %q", tt.name)
})
}
}