github.com/dolanor/pop@v4.13.0+incompatible/belongs_to_test.go (about)

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