MCPcopy Index your code
hub / github.com/ent/ent / TestSetNeighbors

Function TestSetNeighbors

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

Source from the content-addressed store, hash-verified

290}
291
292func TestSetNeighbors(t *testing.T) {
293 tests := []struct {
294 name string
295 input *Step
296 wantQuery string
297 wantArgs []any
298 }{
299 {
300 name: "O2M/2types",
301 input: NewStep(
302 From("users", "id", sql.Select().From(sql.Table("users")).Where(sql.EQ("name", "a8m"))),
303 To("pets", "id"),
304 Edge(O2M, false, "users", "owner_id"),
305 ),
306 wantQuery: `SELECT * FROM "pets" JOIN (SELECT "users"."id" FROM "users" WHERE "name" = $1) AS "t1" ON "pets"."owner_id" = "t1"."id"`,
307 wantArgs: []any{"a8m"},
308 },
309 {
310 name: "M2O/2types",
311 input: NewStep(
312 From("pets", "id", sql.Select().From(sql.Table("pets")).Where(sql.EQ("name", "pedro"))),
313 To("users", "id"),
314 Edge(M2O, true, "pets", "owner_id"),
315 ),
316 wantQuery: `SELECT * FROM "users" JOIN (SELECT "pets"."owner_id" FROM "pets" WHERE "name" = $1) AS "t1" ON "users"."id" = "t1"."owner_id"`,
317 wantArgs: []any{"pedro"},
318 },
319 {
320 name: "M2M/2types",
321 input: NewStep(
322 From("users", "id", sql.Select().From(sql.Table("users")).Where(sql.EQ("name", "a8m"))),
323 To("groups", "id"),
324 Edge(M2M, false, "user_groups", "user_id", "group_id"),
325 ),
326 wantQuery: `
327SELECT *
328FROM "groups"
329JOIN
330 (SELECT "user_groups"."group_id"
331 FROM "user_groups"
332 JOIN
333 (SELECT "users"."id"
334 FROM "users"
335 WHERE "name" = $1) AS "t1" ON "user_groups"."user_id" = "t1"."id") AS "t1" ON "groups"."id" = "t1"."group_id"`,
336 wantArgs: []any{"a8m"},
337 },
338 {
339 name: "M2M/2types/inverse",
340 input: NewStep(
341 From("groups", "id", sql.Select().From(sql.Table("groups")).Where(sql.EQ("name", "GitHub"))),
342 To("users", "id"),
343 Edge(M2M, true, "user_groups", "user_id", "group_id"),
344 ),
345 wantQuery: `
346SELECT *
347FROM "users"
348JOIN
349 (SELECT "user_groups"."user_id"

Callers

nothing calls this directly

Calls 15

SelectFunction · 0.92
TableFunction · 0.92
EQFunction · 0.92
NewStepFunction · 0.85
SetNeighborsFunction · 0.85
RunMethod · 0.80
FromFunction · 0.70
ToFunction · 0.70
EdgeFunction · 0.70
WhereMethod · 0.65
QueryMethod · 0.65
FieldsMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…