@@ -15,7 +15,7 @@ public void class_policy_success()
1515 _ . RequireClaim ( "admin" ) ;
1616 } ) ;
1717
18- ShouldPassRule ( _=>
18+ ShouldPassRule ( _ =>
1919 {
2020 _ . Query = @"query { post }" ;
2121 _ . Schema = BasicSchema ( ) ;
@@ -34,7 +34,7 @@ public void class_policy_fail()
3434 _ . RequireClaim ( "admin" ) ;
3535 } ) ;
3636
37- ShouldFailRule ( _=>
37+ ShouldFailRule ( _ =>
3838 {
3939 _ . Query = @"query { post }" ;
4040 _ . Schema = BasicSchema ( ) ;
@@ -49,7 +49,7 @@ public void field_policy_success()
4949 _ . RequireClaim ( "admin" ) ;
5050 } ) ;
5151
52- ShouldPassRule ( _=>
52+ ShouldPassRule ( _ =>
5353 {
5454 _ . Query = @"query { post }" ;
5555 _ . Schema = BasicSchema ( ) ;
@@ -68,7 +68,7 @@ public void field_policy_fail()
6868 _ . RequireClaim ( "admin" ) ;
6969 } ) ;
7070
71- ShouldFailRule ( _=>
71+ ShouldFailRule ( _ =>
7272 {
7373 _ . Query = @"query { post }" ;
7474 _ . Schema = BasicSchema ( ) ;
@@ -83,7 +83,7 @@ public void nested_type_policy_success()
8383 _ . RequireClaim ( "admin" ) ;
8484 } ) ;
8585
86- ShouldPassRule ( _=>
86+ ShouldPassRule ( _ =>
8787 {
8888 _ . Query = @"query { post }" ;
8989 _ . Schema = NestedSchema ( ) ;
@@ -102,7 +102,7 @@ public void nested_type_policy_fail()
102102 _ . RequireClaim ( "admin" ) ;
103103 } ) ;
104104
105- ShouldFailRule ( _=>
105+ ShouldFailRule ( _ =>
106106 {
107107 _ . Query = @"query { post }" ;
108108 _ . Schema = NestedSchema ( ) ;
@@ -117,7 +117,7 @@ public void passes_with_claim_on_input_type()
117117 _ . RequireClaim ( "admin" ) ;
118118 } ) ;
119119
120- ShouldPassRule ( _=>
120+ ShouldPassRule ( _ =>
121121 {
122122 _ . Query = @"query { author(input: { name: ""Quinn"" }) }" ;
123123 _ . Schema = TypedSchema ( ) ;
@@ -136,13 +136,72 @@ public void fails_on_missing_claim_on_input_type()
136136 _ . RequireClaim ( "admin" ) ;
137137 } ) ;
138138
139- ShouldFailRule ( _=>
139+ ShouldFailRule ( _ =>
140140 {
141141 _ . Query = @"query { author(input: { name: ""Quinn"" }) }" ;
142142 _ . Schema = TypedSchema ( ) ;
143143 } ) ;
144144 }
145145
146+ [ Fact ]
147+ public void passes_when_field_is_not_included ( )
148+ {
149+ Settings . AddPolicy ( "FieldPolicy" , _ =>
150+ {
151+ _ . RequireClaim ( "admin" ) ;
152+ } ) ;
153+
154+ ShouldPassRule ( _ =>
155+ {
156+ _ . Query = @"query { post @include(if: false) }" ;
157+ _ . Schema = BasicSchema ( ) ;
158+ } ) ;
159+ }
160+ [ Fact ]
161+ public void fails_when_field_is_included ( )
162+ {
163+ Settings . AddPolicy ( "FieldPolicy" , _ =>
164+ {
165+ _ . RequireClaim ( "admin" ) ;
166+ } ) ;
167+
168+ ShouldFailRule ( _ =>
169+ {
170+ _ . Query = @"query { post @include(if: true) }" ;
171+ _ . Schema = BasicSchema ( ) ;
172+ } ) ;
173+ }
174+
175+ [ Fact ]
176+ public void passes_when_field_is_skipped ( )
177+ {
178+ Settings . AddPolicy ( "FieldPolicy" , _ =>
179+ {
180+ _ . RequireClaim ( "admin" ) ;
181+ } ) ;
182+
183+ ShouldPassRule ( _ =>
184+ {
185+ _ . Query = @"query { post @skip(if: true) }" ;
186+ _ . Schema = BasicSchema ( ) ;
187+ } ) ;
188+ }
189+
190+ [ Fact ]
191+ public void fails_when_field_is_not_skipped ( )
192+ {
193+ Settings . AddPolicy ( "FieldPolicy" , _ =>
194+ {
195+ _ . RequireClaim ( "admin" ) ;
196+ } ) ;
197+
198+ ShouldFailRule ( _ =>
199+ {
200+ _ . Query = @"query { post @skip(if: false) }" ;
201+ _ . Schema = BasicSchema ( ) ;
202+ } ) ;
203+ }
204+
146205 private ISchema BasicSchema ( )
147206 {
148207 var defs = @"
@@ -204,7 +263,7 @@ public class Post
204263
205264 public class Author
206265 {
207- public string Name { get ; set ; }
266+ public string Name { get ; set ; }
208267 }
209268
210269 private ISchema TypedSchema ( )
0 commit comments