@@ -1208,6 +1208,23 @@ func TestQuery_Preload_hasMany(t *testing.T) {
12081208 mock .AssertExpectations (t )
12091209}
12101210
1211+ func TestQuery_Preload_hasManyNoResult (t * testing.T ) {
1212+ mock := new (TestAdapter )
1213+ repo := Repo {adapter : mock }
1214+
1215+ user := User {ID : 10 }
1216+ result := []Transaction {}
1217+
1218+ query := repo .From ("transactions" )
1219+
1220+ mock .Result (result ).On ("All" , query .Where (In ("user_id" , 10 )), & []Transaction {}).Return (2 , nil )
1221+
1222+ assert .Nil (t , query .Preload (& user , "Transactions" ))
1223+ assert .Equal (t , result , user .Transactions )
1224+ assert .NotPanics (t , func () { query .MustPreload (& user , "Transactions" ) })
1225+ mock .AssertExpectations (t )
1226+ }
1227+
12111228func TestQuery_Preload_sliceHasMany (t * testing.T ) {
12121229 mock := new (TestAdapter )
12131230 repo := Repo {adapter : mock }
@@ -1251,6 +1268,23 @@ func TestQuery_Preload_nestedHasMany(t *testing.T) {
12511268 mock .AssertExpectations (t )
12521269}
12531270
1271+ func TestQuery_Preload_nestedHasManyNoResult (t * testing.T ) {
1272+ mock := new (TestAdapter )
1273+ repo := Repo {adapter : mock }
1274+
1275+ address := Address {User : & User {ID : 10 }}
1276+ result := []Transaction {}
1277+
1278+ query := repo .From ("transactions" )
1279+
1280+ mock .Result (result ).On ("All" , query .Where (In ("user_id" , 10 )), & []Transaction {}).Return (2 , nil )
1281+
1282+ assert .Nil (t , query .Preload (& address , "User.Transactions" ))
1283+ assert .Equal (t , result , address .User .Transactions )
1284+ assert .NotPanics (t , func () { query .MustPreload (& address , "User.Transactions" ) })
1285+ mock .AssertExpectations (t )
1286+ }
1287+
12541288func TestQuery_Preload_nestedNullHasMany (t * testing.T ) {
12551289 mock := new (TestAdapter )
12561290 repo := Repo {adapter : mock }
0 commit comments