sessions/internal/domain/error_test.go

69 lines
1.8 KiB
Go

package domain_test
import (
"fmt"
"testing"
"gitea.dwysokinski.me/twhelp/sessions/internal/domain"
"github.com/stretchr/testify/assert"
)
func TestErrorCode_String(t *testing.T) {
t.Parallel()
assert.Equal(t, domain.ErrorCodeUnknown.String(), "internal-server-error")
assert.Equal(t, domain.ErrorCodeEntityNotFound.String(), "entity-not-found")
assert.Equal(t, domain.ErrorCodeValidationError.String(), "validation-error")
assert.Equal(t, domain.ErrorCodeAlreadyExists.String(), "already-exists")
}
func TestValidationError(t *testing.T) {
t.Parallel()
err := domain.ValidationError{
Field: "test",
Err: domain.ErrRequired,
}
var _ domain.Error = err
assert.Equal(t, fmt.Sprintf("%s: %s", err.Field, err.Err.Error()), err.Error())
assert.Equal(t, err.Error(), err.UserError())
assert.ErrorIs(t, err, err.Err)
assert.Equal(t, domain.ErrorCodeValidationError, err.Code())
}
func TestMinLengthError(t *testing.T) {
t.Parallel()
err := domain.MinLengthError{
Min: 25,
}
var _ domain.Error = err
assert.Equal(t, "the length must be no less than 25", err.Error())
assert.Equal(t, err.Error(), err.UserError())
assert.Equal(t, domain.ErrorCodeValidationError, err.Code())
}
func TestMaxLengthError(t *testing.T) {
t.Parallel()
err := domain.MaxLengthError{
Max: 25,
}
var _ domain.Error = err
assert.Equal(t, "the length must be no more than 25", err.Error())
assert.Equal(t, err.Error(), err.UserError())
assert.Equal(t, domain.ErrorCodeValidationError, err.Code())
}
func TestMinError(t *testing.T) {
t.Parallel()
err := domain.MinError{
Min: 25,
}
var _ domain.Error = err
assert.Equal(t, "must be no less than 25", err.Error())
assert.Equal(t, err.Error(), err.UserError())
assert.Equal(t, domain.ErrorCodeValidationError, err.Code())
}