From 0ff49fe89fe43731747709d6a9b43ff948e77cc0 Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Thu, 7 Nov 2019 02:41:14 -0800 Subject: [PATCH] dialect/sql: add neighbors test for O2O with 2 types Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/146 Reviewed By: idoshveki Differential Revision: D18369884 fbshipit-source-id: 8cba47de27831d317dbe438ccff49b61132f6085 --- dialect/sql/graph_test.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/dialect/sql/graph_test.go b/dialect/sql/graph_test.go index 1af7de664..122c99fad 100644 --- a/dialect/sql/graph_test.go +++ b/dialect/sql/graph_test.go @@ -71,6 +71,41 @@ func TestNeighbors(t *testing.T) { wantQuery: "SELECT * FROM `users` WHERE `parent_id` = ?", wantArgs: []interface{}{1}, }, + { + name: "O2O/2types", + input: func() *Step { + step := &Step{} + step.From.V = 2 + step.From.Table = "users" + step.From.Column = "id" + step.To.Table = "card" + step.To.Column = "id" + step.Edge.Rel = O2O + step.Edge.Table = "cards" + step.Edge.Columns = []string{"owner_id"} + return step + }(), + wantQuery: "SELECT * FROM `card` WHERE `owner_id` = ?", + wantArgs: []interface{}{2}, + }, + { + name: "O2O/2types/inverse", + input: func() *Step { + step := &Step{} + step.From.V = 2 + step.From.Table = "card" + step.From.Column = "id" + step.To.Table = "users" + step.To.Column = "id" + step.Edge.Rel = O2O + step.Edge.Table = "cards" + step.Edge.Inverse = true + step.Edge.Columns = []string{"owner_id"} + return step + }(), + wantQuery: "SELECT * FROM `users` JOIN (SELECT `owner_id` FROM `cards` WHERE `id` = ?) AS `t1` ON `users`.`id` = `t1`.`owner_id`", + wantArgs: []interface{}{2}, + }, { name: "O2M/2types", input: func() *Step {