github.com/Accefy/pop@v0.0.0-20230428174248-e9f677eab5b9/belongs_to_test.go (about) 1 package pop 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func Test_BelongsTo(t *testing.T) { 11 if PDB == nil { 12 t.Skip("skipping integration tests") 13 } 14 r := require.New(t) 15 16 q := PDB.BelongsTo(&User{ID: 1}) 17 18 m := NewModel(new(Enemy), context.Background()) 19 20 sql, _ := q.ToSQL(m) 21 r.Equal(ts("SELECT enemies.A FROM enemies AS enemies WHERE user_id = ?"), sql) 22 } 23 24 func Test_BelongsToAs(t *testing.T) { 25 if PDB == nil { 26 t.Skip("skipping integration tests") 27 } 28 r := require.New(t) 29 30 q := PDB.BelongsToAs(&User{ID: 1}, "u_id") 31 32 m := NewModel(new(Enemy), context.Background()) 33 34 sql, _ := q.ToSQL(m) 35 r.Equal(ts("SELECT enemies.A FROM enemies AS enemies WHERE u_id = ?"), sql) 36 } 37 38 func Test_BelongsToThrough(t *testing.T) { 39 if PDB == nil { 40 t.Skip("skipping integration tests") 41 } 42 r := require.New(t) 43 44 q := PDB.BelongsToThrough(&User{ID: 1}, &Friend{}) 45 qs := "SELECT enemies.A FROM enemies AS enemies, good_friends AS good_friends WHERE good_friends.user_id = ? AND enemies.id = good_friends.enemy_id" 46 47 m := NewModel(new(Enemy), context.Background()) 48 sql, _ := q.ToSQL(m) 49 r.Equal(ts(qs), sql) 50 }