From 09fd57eb3e1b6370e8ebdcb191d2c41dc37f0a13 Mon Sep 17 00:00:00 2001 From: Jannik Clausen <12862103+masseelch@users.noreply.github.com> Date: Wed, 4 Jun 2025 08:42:49 +0200 Subject: [PATCH] entc/gen: atlas:pos directive to views (#4400) --- entc/gen/graph.go | 3 ++- entc/gen/graph_test.go | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/entc/gen/graph.go b/entc/gen/graph.go index 5e33490ad..2a1eebee8 100644 --- a/entc/gen/graph.go +++ b/entc/gen/graph.go @@ -793,7 +793,8 @@ func (g *Graph) Views() (views []*schema.Table, err error) { continue } view := schema.NewView(n.Table()). - SetComment(n.sqlComment()) + SetComment(n.sqlComment()). + SetPos(n.Pos()) switch ant := n.EntSQL(); { case ant == nil: case ant.Skip: diff --git a/entc/gen/graph_test.go b/entc/gen/graph_test.go index d161fcb84..53e91ddde 100644 --- a/entc/gen/graph_test.go +++ b/entc/gen/graph_test.go @@ -401,6 +401,12 @@ func TestPosition(t *testing.T) { }, Annotations: antFn("two"), } + petView = &load.Schema{ + View: true, + Name: "PetView", + Pos: "pet_view.go:10", + Annotations: antFn("two"), + } car = &load.Schema{ Name: "Car", Pos: "car.go:100", @@ -423,7 +429,7 @@ func TestPosition(t *testing.T) { Annotations: antFn("two"), } ) - g, err := NewGraph(&Config{Package: "entc/gen", Storage: drivers[0]}, user, pet, car, carOwner) + g, err := NewGraph(&Config{Package: "entc/gen", Storage: drivers[0]}, user, pet, petView, car, carOwner) require.NoError(t, err) ts, err := g.Tables() require.NoError(t, err) @@ -433,6 +439,10 @@ func TestPosition(t *testing.T) { require.Equal(t, ts[2].Pos, "car.go:100") require.Equal(t, ts[3].Pos, "car_owner.go:1000") // edge schema has its own position require.Equal(t, ts[4].Pos, "user.go:1") // user owns the pet edge -> user position + vs, err := g.Views() + require.NoError(t, err) + require.Len(t, vs, 1) + require.Equal(t, vs[0].Pos, "pet_view.go:10") } func TestMultiSchemaAnnotation(t *testing.T) {