MCPcopy
hub / github.com/ent/ent / TestQueryNodesSchema

Function TestQueryNodesSchema

dialect/sql/sqlgraph/graph_test.go:2480–2524  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2478}
2479
2480func TestQueryNodesSchema(t *testing.T) {
2481 db, mock, err := sqlmock.New()
2482 require.NoError(t, err)
2483 mock.ExpectQuery(escape("SELECT DISTINCT `mydb`.`users`.`id`, `mydb`.`users`.`age`, `mydb`.`users`.`name`, `mydb`.`users`.`fk1`, `mydb`.`users`.`fk2` FROM `mydb`.`users` WHERE `age` < ? ORDER BY `id` LIMIT 3 OFFSET 4")).
2484 WithArgs(40).
2485 WillReturnRows(sqlmock.NewRows([]string{"id", "age", "name", "fk1", "fk2"}).
2486 AddRow(1, 10, nil, nil, nil).
2487 AddRow(2, 20, "", 0, 0).
2488 AddRow(3, 30, "a8m", 1, 1))
2489 var (
2490 users []*user
2491 spec = &QuerySpec{
2492 Node: &NodeSpec{
2493 Table: "users",
2494 Schema: "mydb",
2495 Columns: []string{"id", "age", "name", "fk1", "fk2"},
2496 ID: &FieldSpec{Column: "id", Type: field.TypeInt},
2497 },
2498 Limit: 3,
2499 Offset: 4,
2500 Unique: true,
2501 Order: func(s *sql.Selector) {
2502 s.OrderBy("id")
2503 },
2504 Predicate: func(s *sql.Selector) {
2505 s.Where(sql.LT("age", 40))
2506 },
2507 ScanValues: func(columns []string) ([]any, error) {
2508 u := &user{}
2509 users = append(users, u)
2510 return u.values(columns)
2511 },
2512 Assign: func(columns []string, values []any) error {
2513 return users[len(users)-1].assign(columns, values)
2514 },
2515 }
2516 )
2517
2518 // Query and scan.
2519 err = QueryNodes(context.Background(), sql.OpenDB("", db), spec)
2520 require.NoError(t, err)
2521 require.Equal(t, &user{id: 1, age: 10, name: ""}, users[0])
2522 require.Equal(t, &user{id: 2, age: 20, name: ""}, users[1])
2523 require.Equal(t, &user{id: 3, age: 30, name: "a8m", edges: struct{ fk1, fk2 int }{1, 1}}, users[2])
2524}
2525
2526func TestQueryEdges(t *testing.T) {
2527 db, mock, err := sqlmock.New()

Callers

nothing calls this directly

Calls 9

valuesMethod · 0.95
LTFunction · 0.92
OpenDBFunction · 0.92
QueryNodesFunction · 0.85
NewMethod · 0.80
assignMethod · 0.80
escapeFunction · 0.70
WhereMethod · 0.65
OrderByMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…