@@ -41,6 +41,91 @@ describe('QueryComplexity analysis', () => {
41
41
expect ( complexity ) . to . equal ( 1 ) ;
42
42
} ) ;
43
43
44
+ it ( 'should respect @include(if: false)' , ( ) => {
45
+ const ast = parse ( `
46
+ query {
47
+ variableScalar(count: 10) @include(if: false)
48
+ }
49
+ ` ) ;
50
+
51
+ const complexity = getComplexity ( {
52
+ estimators : [
53
+ simpleEstimator ( { defaultComplexity : 1 } )
54
+ ] ,
55
+ schema,
56
+ query : ast
57
+ } ) ;
58
+ expect ( complexity ) . to . equal ( 0 ) ;
59
+ } ) ;
60
+
61
+ it ( 'should respect @include(if: true)' , ( ) => {
62
+ const ast = parse ( `
63
+ query {
64
+ variableScalar(count: 10) @include(if: true)
65
+ }
66
+ ` ) ;
67
+
68
+ const complexity = getComplexity ( {
69
+ estimators : [
70
+ simpleEstimator ( { defaultComplexity : 1 } )
71
+ ] ,
72
+ schema,
73
+ query : ast
74
+ } ) ;
75
+ expect ( complexity ) . to . equal ( 1 ) ;
76
+ } ) ;
77
+
78
+ it ( 'should respect @skip(if: true)' , ( ) => {
79
+ const ast = parse ( `
80
+ query {
81
+ variableScalar(count: 10) @skip(if: true)
82
+ }
83
+ ` ) ;
84
+
85
+ const complexity = getComplexity ( {
86
+ estimators : [
87
+ simpleEstimator ( { defaultComplexity : 1 } )
88
+ ] ,
89
+ schema,
90
+ query : ast
91
+ } ) ;
92
+ expect ( complexity ) . to . equal ( 0 ) ;
93
+ } ) ;
94
+
95
+ it ( 'should respect @skip(if: false)' , ( ) => {
96
+ const ast = parse ( `
97
+ query {
98
+ variableScalar(count: 10) @skip(if: false)
99
+ }
100
+ ` ) ;
101
+
102
+ const complexity = getComplexity ( {
103
+ estimators : [
104
+ simpleEstimator ( { defaultComplexity : 1 } )
105
+ ] ,
106
+ schema,
107
+ query : ast
108
+ } ) ;
109
+ expect ( complexity ) . to . equal ( 1 ) ;
110
+ } ) ;
111
+
112
+ it ( 'should respect @skip(if: false) @include(if: true)' , ( ) => {
113
+ const ast = parse ( `
114
+ query {
115
+ variableScalar(count: 10) @skip(if: false) @include(if: true)
116
+ }
117
+ ` ) ;
118
+
119
+ const complexity = getComplexity ( {
120
+ estimators : [
121
+ simpleEstimator ( { defaultComplexity : 1 } )
122
+ ] ,
123
+ schema,
124
+ query : ast
125
+ } ) ;
126
+ expect ( complexity ) . to . equal ( 1 ) ;
127
+ } ) ;
128
+
44
129
it ( 'should calculate complexity with variables' , ( ) => {
45
130
const ast = parse ( `
46
131
query Q($count: Int) {
@@ -341,7 +426,7 @@ describe('QueryComplexity analysis', () => {
341
426
} ) ;
342
427
expect ( Number . isNaN ( complexity ) ) . to . equal ( true ) ;
343
428
} ) ;
344
-
429
+
345
430
it ( 'should skip complexity calculation by directiveEstimator when no astNode available on field' , ( ) => {
346
431
const ast = parse ( `
347
432
query {
0 commit comments