@@ -569,7 +569,7 @@ describe('Joins Field', () => {
569
569
570
570
const version = await payload . create ( {
571
571
collection : 'versions' ,
572
- data : { categoryVersion : category . id } ,
572
+ data : { title : 'version' , categoryVersion : category . id } ,
573
573
} )
574
574
575
575
const res = await payload . find ( { collection : 'categories-versions' , draft : false } )
@@ -582,7 +582,7 @@ describe('Joins Field', () => {
582
582
583
583
const version = await payload . create ( {
584
584
collection : 'versions' ,
585
- data : { categoryVersions : [ category . id ] } ,
585
+ data : { title : 'version' , categoryVersions : [ category . id ] } ,
586
586
} )
587
587
588
588
const res = await payload . find ( { collection : 'categories-versions' , draft : false } )
@@ -595,7 +595,7 @@ describe('Joins Field', () => {
595
595
596
596
const version = await payload . create ( {
597
597
collection : 'versions' ,
598
- data : { categoryVersion : category . id } ,
598
+ data : { title : 'version' , categoryVersion : category . id } ,
599
599
} )
600
600
601
601
const res = await payload . find ( {
@@ -615,7 +615,14 @@ describe('Joins Field', () => {
615
615
616
616
const version = await payload . create ( {
617
617
collection : 'versions' ,
618
- data : { _status : 'draft' , categoryVersion : category . id } ,
618
+ data : { title : 'original-title' , _status : 'draft' , categoryVersion : category . id } ,
619
+ draft : true ,
620
+ } )
621
+
622
+ await payload . update ( {
623
+ collection : 'versions' ,
624
+ id : version . id ,
625
+ data : { title : 'updated-title' } ,
619
626
draft : true ,
620
627
} )
621
628
@@ -625,14 +632,15 @@ describe('Joins Field', () => {
625
632
} )
626
633
627
634
expect ( res . docs [ 0 ] . relatedVersions . docs [ 0 ] . id ) . toBe ( version . id )
635
+ expect ( res . docs [ 0 ] . relatedVersions . docs [ 0 ] . title ) . toBe ( 'updated-title' )
628
636
} )
629
637
630
638
it ( 'should populate joins when versions on both sides draft true payload.db.queryDrafts' , async ( ) => {
631
639
const category = await payload . create ( { collection : 'categories-versions' , data : { } } )
632
640
633
641
const version = await payload . create ( {
634
642
collection : 'versions' ,
635
- data : { categoryVersions : [ category . id ] } ,
643
+ data : { categoryVersions : [ category . id ] , title : 'version' } ,
636
644
} )
637
645
638
646
const res = await payload . find ( {
@@ -932,6 +940,52 @@ describe('Joins Field', () => {
932
940
)
933
941
} )
934
942
943
+ it ( 'should populate joins with hasMany when on both sides documents are in draft' , async ( ) => {
944
+ const category = await payload . create ( {
945
+ collection : 'categories-versions' ,
946
+ data : { _status : 'draft' } ,
947
+ draft : true ,
948
+ } )
949
+
950
+ const version = await payload . create ( {
951
+ collection : 'versions' ,
952
+ data : { _status : 'draft' , title : 'original-title' , categoryVersion : category . id } ,
953
+ draft : true ,
954
+ } )
955
+
956
+ await payload . update ( {
957
+ collection : 'versions' ,
958
+ draft : true ,
959
+ id : version . id ,
960
+ data : { title : 'updated-title' } ,
961
+ } )
962
+
963
+ const query = `query {
964
+ CategoriesVersions(draft: true) {
965
+ docs {
966
+ relatedVersions(
967
+ limit: 1
968
+ ) {
969
+ docs {
970
+ id,
971
+ title
972
+ }
973
+ hasNextPage
974
+ }
975
+ }
976
+ }
977
+ }`
978
+
979
+ const res = await restClient
980
+ . GRAPHQL_POST ( { body : JSON . stringify ( { query } ) } )
981
+ . then ( ( res ) => res . json ( ) )
982
+
983
+ expect ( res . data . CategoriesVersions . docs [ 0 ] . relatedVersions . docs [ 0 ] . id ) . toBe ( version . id )
984
+ expect ( res . data . CategoriesVersions . docs [ 0 ] . relatedVersions . docs [ 0 ] . title ) . toBe (
985
+ 'updated-title' ,
986
+ )
987
+ } )
988
+
935
989
it ( 'should have simple paginate for joins inside groups' , async ( ) => {
936
990
const queryWithLimit = `query {
937
991
Categories(where: {
0 commit comments