mirror of
https://github.com/ent/ent.git
synced 2026-04-28 13:40:56 +03:00
ent: initial support for edge schemas (#2560)
This commit is contained in:
@@ -1135,6 +1135,29 @@ func TestCreateNode(t *testing.T) {
|
||||
m.ExpectCommit()
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "edges/m2m/fields",
|
||||
spec: &CreateSpec{
|
||||
Table: "groups",
|
||||
ID: &FieldSpec{Column: "id", Type: field.TypeInt},
|
||||
Fields: []*FieldSpec{
|
||||
{Column: "name", Type: field.TypeString, Value: "GitHub"},
|
||||
},
|
||||
Edges: []*EdgeSpec{
|
||||
{Rel: M2M, Table: "group_users", Columns: []string{"group_id", "user_id"}, Target: &EdgeTarget{Nodes: []driver.Value{2}, IDSpec: &FieldSpec{Column: "id"}, Fields: []*FieldSpec{{Column: "ts", Type: field.TypeInt, Value: 3}}}},
|
||||
},
|
||||
},
|
||||
expect: func(m sqlmock.Sqlmock) {
|
||||
m.ExpectBegin()
|
||||
m.ExpectExec(escape("INSERT INTO `groups` (`name`) VALUES (?)")).
|
||||
WithArgs("GitHub").
|
||||
WillReturnResult(sqlmock.NewResult(1, 1))
|
||||
m.ExpectExec(escape("INSERT INTO `group_users` (`group_id`, `user_id`, `ts`) VALUES (?, ?, ?)")).
|
||||
WithArgs(1, 2, 3).
|
||||
WillReturnResult(sqlmock.NewResult(1, 1))
|
||||
m.ExpectCommit()
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "edges/m2m/inverse",
|
||||
spec: &CreateSpec{
|
||||
@@ -1181,6 +1204,29 @@ func TestCreateNode(t *testing.T) {
|
||||
m.ExpectCommit()
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "edges/m2m/bidi/fields",
|
||||
spec: &CreateSpec{
|
||||
Table: "users",
|
||||
ID: &FieldSpec{Column: "id", Type: field.TypeInt},
|
||||
Fields: []*FieldSpec{
|
||||
{Column: "name", Type: field.TypeString, Value: "mashraki"},
|
||||
},
|
||||
Edges: []*EdgeSpec{
|
||||
{Rel: M2M, Bidi: true, Table: "user_friends", Columns: []string{"user_id", "friend_id"}, Target: &EdgeTarget{Nodes: []driver.Value{2}, IDSpec: &FieldSpec{Column: "id"}, Fields: []*FieldSpec{{Column: "ts", Type: field.TypeInt, Value: 3}}}},
|
||||
},
|
||||
},
|
||||
expect: func(m sqlmock.Sqlmock) {
|
||||
m.ExpectBegin()
|
||||
m.ExpectExec(escape("INSERT INTO `users` (`name`) VALUES (?)")).
|
||||
WithArgs("mashraki").
|
||||
WillReturnResult(sqlmock.NewResult(1, 1))
|
||||
m.ExpectExec(escape("INSERT INTO `user_friends` (`user_id`, `friend_id`, `ts`) VALUES (?, ?, ?), (?, ?, ?)")).
|
||||
WithArgs(1, 2, 3, 2, 1, 3).
|
||||
WillReturnResult(sqlmock.NewResult(1, 1))
|
||||
m.ExpectCommit()
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "edges/m2m/bidi/batch",
|
||||
spec: &CreateSpec{
|
||||
|
||||
Reference in New Issue
Block a user