github.com/paweljw/pop/v5@v5.4.6/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  }