@@ -1816,7 +1816,7 @@ describe "lapis.db.model.relations", ->
18161816 [[ SELECT * FROM "user_data" WHERE "user_id" IN (11, 12)]]
18171817 } , sorted : true
18181818
1819- it " passes preload opts" , ->
1819+ it " passes preload opts to fetch relation " , ->
18201820 local preload_objects, preload_opts
18211821
18221822 class Item extends Model
@@ -1834,6 +1834,7 @@ describe "lapis.db.model.relations", ->
18341834 preload items, things : {
18351835 [ preload] : {
18361836 fields : " blue"
1837+ random : " option"
18371838 }
18381839 }
18391840
@@ -1842,8 +1843,28 @@ describe "lapis.db.model.relations", ->
18421843
18431844 assert . same {
18441845 fields : " blue"
1846+ random : " option"
18451847 } , preload_opts
18461848
1849+ it " with skip_included preload option" , ->
1850+ models. Items = class Items extends Model
1851+ @relations : {
1852+ { " parents" , has_many : " Items" , key : " parent_id" }
1853+ }
1854+
1855+ items = {
1856+ Items \ load { id : 123 , parents : {} } -- this one already has it
1857+ Items \ load { id : 234 }
1858+ }
1859+
1860+ preload items, parents : {
1861+ [ preload] : { fields : " what" , skip_included : true }
1862+ }
1863+
1864+ assert_queries {
1865+ [[ SELECT what FROM "items" WHERE "parent_id" IN (234)]]
1866+ }
1867+
18471868 describe " optional relations" , ->
18481869 it " single optional relation" , ->
18491870 class OtherThing extends Model
0 commit comments