@@ -26,6 +26,7 @@ import { TypeWeightObject, Variables } from '../../src/@types/buildTypeWeights';
2626 name: String!
2727 friends(first: Int): [Character]
2828 appearsIn: [Episode]!
29+ scalarList(first: Int): [Int]
2930 }
3031
3132 type Human implements Character {
@@ -294,22 +295,42 @@ describe('Test getQueryTypeComplexity function', () => {
294295 expect ( mockWeightFunction . mock . calls [ 1 ] . length ) . toBe ( 1 ) ;
295296 } ) ;
296297
297- test ( 'with nested lists' , ( ) => {
298- query = `
299- query {
300- human(id: 1) {
301- name,
302- friends(first: 5) {
298+ xdescribe ( 'with nested lists' , ( ) => {
299+ test ( 'and simple nesting' , ( ) => {
300+ query = `
301+ query {
302+ human(id: 1) {
303303 name,
304- friends(first: 3){
305- name
304+ friends(first: 5) {
305+ name,
306+ friends(first: 3){
307+ name
308+ }
306309 }
307- }
308- }
309- }` ;
310- mockHumanFriendsFunction . mockReturnValueOnce ( 5 ) . mockReturnValueOnce ( 3 ) ;
311- expect ( getQueryTypeComplexity ( parse ( query ) , variables , typeWeights ) ) . toBe ( 17 ) ; // 1 Query + 1 human/character + (5 friends/character X 3 friends/characters)
312- expect ( mockHumanFriendsFunction . mock . calls . length ) . toBe ( 2 ) ;
310+ }
311+ }` ;
312+ mockHumanFriendsFunction . mockReturnValueOnce ( 5 ) . mockReturnValueOnce ( 3 ) ;
313+ expect ( getQueryTypeComplexity ( parse ( query ) , variables , typeWeights ) ) . toBe ( 17 ) ; // 1 Query + 1 human/character + (5 friends/character X 3 friends/characters)
314+ expect ( mockHumanFriendsFunction . mock . calls . length ) . toBe ( 2 ) ;
315+ } ) ;
316+
317+ test ( 'and inner scalar lists' , ( ) => {
318+ query = `
319+ query {
320+ human(id: 1) {
321+ name,
322+ friends(first: 5) {
323+ name,
324+ scalarList(first: 3){
325+ name
326+ }
327+ }
328+ }
329+ }` ;
330+ mockHumanFriendsFunction . mockReturnValueOnce ( 5 ) ;
331+ expect ( getQueryTypeComplexity ( parse ( query ) , variables , typeWeights ) ) . toBe ( 7 ) ; // 1 Query + 1 human/character + 5 friends/character + 0 scalarList
332+ expect ( mockHumanFriendsFunction . mock . calls . length ) . toBe ( 2 ) ;
333+ } ) ;
313334 } ) ;
314335
315336 xtest ( 'accounting for __typename feild' , ( ) => {
0 commit comments