@@ -978,7 +978,7 @@ fn can_query_with_sorting_by_child_interface() {
978
978
}
979
979
980
980
#[ test]
981
- fn can_not_query_interface_with_sorting_by_child_entity ( ) {
981
+ fn can_query_interface_with_sorting_by_child_entity ( ) {
982
982
const QUERY : & str = "
983
983
query {
984
984
desc: medias(first: 100, orderBy: author__name, orderDirection: desc) {
@@ -996,8 +996,27 @@ fn can_not_query_interface_with_sorting_by_child_entity() {
996
996
}" ;
997
997
998
998
run_query ( QUERY , |result, _| {
999
- // Sorting an interface by child-level entity (derived) is not supported
1000
- assert ! ( result. has_errors( ) ) ;
999
+ let author1 = object ! { name: "Baden" } ;
1000
+ let author2 = object ! { name: "Goodwill" } ;
1001
+ let desc_medias = vec ! [
1002
+ object! { title: "Folk Tune Music Video" , author: author2. clone( ) } ,
1003
+ object! { title: "Rock Tune Music Video" , author: author2. clone( ) } ,
1004
+ object! { title: "Cheesy Tune Music Video" , author: author2. clone( ) } ,
1005
+ object! { title: "Pop Tune Single Cover" , author: author1. clone( ) } ,
1006
+ object! { title: "Rock Tune Single Cover" , author: author1. clone( ) } ,
1007
+ object! { title: "Cheesy Tune Single Cover" , author: author1. clone( ) } ,
1008
+ ] ;
1009
+ let mut asc_medias = desc_medias. clone ( ) ;
1010
+
1011
+ asc_medias. reverse ( ) ;
1012
+
1013
+ let exp = object ! {
1014
+ desc: desc_medias,
1015
+ asc: asc_medias,
1016
+ } ;
1017
+
1018
+ let data = extract_data ! ( result) . unwrap ( ) ;
1019
+ assert_eq ! ( data, exp) ;
1001
1020
} ) ;
1002
1021
}
1003
1022
@@ -1020,8 +1039,27 @@ fn can_not_query_interface_with_sorting_by_derived_child_entity() {
1020
1039
}" ;
1021
1040
1022
1041
run_query ( QUERY , |result, _| {
1023
- // Sorting an interface by child-level entity is not supported
1024
- assert ! ( result. has_errors( ) ) ;
1042
+ let exp = object ! {
1043
+ desc: vec![
1044
+ object! { title: "Rock Tune Music Video" , song : object! { title: "Rock Tune" } } ,
1045
+ object! { title: "Rock Tune Single Cover" , song : object! { title: "Rock Tune" } } ,
1046
+ object! { title: "Pop Tune Single Cover" , song : object! { title: "Pop Tune" } } ,
1047
+ object! { title: "Folk Tune Music Video" , song : object! { title: "Folk Tune" } } ,
1048
+ object! { title: "Cheesy Tune Music Video" , song : object! { title: "Cheesy Tune" } } ,
1049
+ object! { title: "Cheesy Tune Single Cover" , song : object! { title: "Cheesy Tune" } } ,
1050
+ ] ,
1051
+ asc: vec![
1052
+ object! { title: "Cheesy Tune Single Cover" , song : object! { title: "Cheesy Tune" } } ,
1053
+ object! { title: "Cheesy Tune Music Video" , song : object! { title: "Cheesy Tune" } } ,
1054
+ object! { title: "Folk Tune Music Video" , song : object! { title: "Folk Tune" } } ,
1055
+ object! { title: "Pop Tune Single Cover" , song : object! { title: "Pop Tune" } } ,
1056
+ object! { title: "Rock Tune Single Cover" , song : object! { title: "Rock Tune" } } ,
1057
+ object! { title: "Rock Tune Music Video" , song : object! { title: "Rock Tune" } } ,
1058
+ ]
1059
+ } ;
1060
+
1061
+ let data = extract_data ! ( result) . unwrap ( ) ;
1062
+ assert_eq ! ( data, exp) ;
1025
1063
} ) ;
1026
1064
}
1027
1065
0 commit comments