fleet/server/datastore/mysql/errors_test.go

45 lines
1,020 B
Go
Raw Normal View History

package mysql
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestAlreadyExistsError(t *testing.T) {
cases := []struct {
name string
fn func(t *testing.T)
}{{
name: "WithTeamID",
fn: func(t *testing.T) {
err := alreadyExists("User", "alice").WithTeamID(42)
expectedMsg := `User "alice" already exists with TeamID 42.`
require.Equal(t, expectedMsg, err.Error())
},
}, {
name: "WithTeamName",
fn: func(t *testing.T) {
err := alreadyExists("User", "alice").WithTeamName("Falcon Team")
expectedMsg := `User "alice" already exists with team "Falcon Team".`
require.Equal(t, expectedMsg, err.Error())
},
}, {
name: "IsError",
fn: func(t *testing.T) {
err := alreadyExists("User", "alice")
require.True(t, err.IsExists())
expectedMsg := `User "alice" already exists`
require.Equal(t, expectedMsg, err.Error())
require.Equal(t, err.Resource(), "User")
},
}}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
c.fn(t)
})
}
}