entc/integration: change Save to Exec in create operation when model is not needed (#1896)

* refactor(entc/integration): change Save to Exec in create operation

* fix: should not change to exec if we need return of the data
This commit is contained in:
Risky Feryansyah
2021-09-01 14:05:30 +07:00
committed by GitHub
parent 9fb76ef5c5
commit 65938ccdd3
2 changed files with 12 additions and 12 deletions

View File

@@ -25,7 +25,7 @@ func TestSchemaHooks(t *testing.T) {
ctx := context.Background()
client := enttest.Open(t, "sqlite3", "file:ent?mode=memory&cache=shared&_fk=1", enttest.WithMigrateOptions(migrate.WithGlobalUniqueID(true)))
defer client.Close()
_, err := client.Card.Create().SetNumber("123").Save(ctx)
err := client.Card.Create().SetNumber("123").Exec(ctx)
require.EqualError(t, err, "card number is too short", "error is returned from hook")
crd := client.Card.Create().SetNumber("1234").SaveX(ctx)
require.Equal(t, "unknown", crd.Name, "name was set by hook")
@@ -37,7 +37,7 @@ func TestSchemaHooks(t *testing.T) {
})
})
client.Card.Create().SetNumber("1234").SaveX(ctx)
_, err = client.Card.Update().Save(ctx)
err = client.Card.Update().Exec(ctx)
require.EqualError(t, err, "OpUpdate operation is not allowed")
}
@@ -257,7 +257,7 @@ func TestOldValues(t *testing.T) {
}, ^ent.OpUpdateOne))
a8m := client.User.Create().SetName("a8m").SaveX(ctx)
require.Equal(t, "a8m", a8m.Name)
_, err := client.User.UpdateOne(a8m).SetName("Ariel").SetVersion(a8m.Version).Save(ctx)
err := client.User.UpdateOne(a8m).SetName("Ariel").SetVersion(a8m.Version).Exec(ctx)
require.EqualError(t, err, "version field must be incremented by 1")
a8m = client.User.UpdateOne(a8m).SetName("Ariel").SetVersion(a8m.Version + 1).SaveX(ctx)
require.Equal(t, "Ariel", a8m.Name)

View File

@@ -150,22 +150,22 @@ func SanityV1(t *testing.T, dbdialect string, client *entv1.Client) {
require.EqualValues(t, 1, u.Age)
require.Equal(t, "foo", u.Name)
_, err := client.User.Create().SetAge(2).SetName("foobarbazqux").Save(ctx)
err := client.User.Create().SetAge(2).SetName("foobarbazqux").Exec(ctx)
require.Error(t, err, "name is limited to 10 chars")
// Unique index on (name, address).
client.User.Create().SetAge(3).SetName("foo").SetNickname("nick_foo_2").SetAddress("tlv").SetState(userv1.StateLoggedIn).SaveX(ctx)
_, err = client.User.Create().SetAge(4).SetName("foo").SetAddress("tlv").Save(ctx)
err = client.User.Create().SetAge(4).SetName("foo").SetAddress("tlv").Exec(ctx)
require.Error(t, err)
// Blob type limited to 255.
u = u.Update().SetBlob([]byte("hello")).SaveX(ctx)
require.Equal(t, "hello", string(u.Blob))
_, err = u.Update().SetBlob(make([]byte, 256)).Save(ctx)
err = u.Update().SetBlob(make([]byte, 256)).Exec(ctx)
require.True(t, strings.Contains(t.Name(), "Postgres") || err != nil, "blob should be limited on SQLite and MySQL")
// Invalid enum value.
_, err = client.User.Create().SetAge(1).SetName("bar").SetNickname("nick_bar").SetState("unknown").Save(ctx)
err = client.User.Create().SetAge(1).SetName("bar").SetNickname("nick_bar").SetState("unknown").Exec(ctx)
require.Error(t, err)
// Conversions
@@ -232,16 +232,16 @@ func SanityV2(t *testing.T, dbdialect string, client *entv2.Client) {
require.Equal(t, []byte("[]"), u.Buffer)
require.Equal(t, user.StateLoggedOut, u.State)
_, err := u.Update().SetState(user.State("boring")).Save(ctx)
err := u.Update().SetState(user.State("boring")).Exec(ctx)
require.Error(t, err, "invalid enum value")
u = u.Update().SetState(user.StateOnline).SaveX(ctx)
require.Equal(t, user.StateOnline, u.State)
_, err = client.User.Create().SetAge(1).SetName("foobarbazqux").SetNickname("nick_bar").SetPhone("200").Save(ctx)
err = client.User.Create().SetAge(1).SetName("foobarbazqux").SetNickname("nick_bar").SetPhone("200").Exec(ctx)
require.NoError(t, err, "name is not limited to 10 chars and nickname is not unique")
// New unique index was added to (age, phone).
_, err = client.User.Create().SetAge(1).SetName("foo").SetPhone("200").SetNickname("nick_bar").Save(ctx)
err = client.User.Create().SetAge(1).SetName("foo").SetPhone("200").SetNickname("nick_bar").Exec(ctx)
require.Error(t, err)
require.True(t, entv2.IsConstraintError(err))
@@ -302,9 +302,9 @@ func SanityV2(t *testing.T, dbdialect string, client *entv2.Client) {
func CheckConstraint(t *testing.T, client *entv2.Client) {
ctx := context.Background()
t.Log("testing check constraints")
_, err := client.Media.Create().SetText("boring").Save(ctx)
err := client.Media.Create().SetText("boring").Exec(ctx)
require.Error(t, err)
_, err = client.Media.Create().SetSourceURI("entgo.io").Save(ctx)
err = client.Media.Create().SetSourceURI("entgo.io").Exec(ctx)
require.Error(t, err)
}