package db import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func AssertForeignKeyError[T ForeignKey](t *testing.T, err error, field string, val T) { t.Helper() var fkErr ForeignKeyError[T] require.Error(t, err) require.ErrorIs(t, err, ErrForeignKeyViolation) // ErrorAs produces terrible error messages if it's a ForeignKeyError with a different type // parameter (i.e., if it was a different field that failed). require.ErrorAs(t, err, &fkErr, "expected error field: %q", field) assert.Equal(t, field, fkErr.Field) assert.Equal(t, val, fkErr.FkValue) }