|
21 | 21 |
|
22 | 22 | describe "simple queries" do
|
23 | 23 | let(:query_string) {%|
|
24 |
| - query cheeses($isSkipped: Boolean = false){ |
| 24 | + query cheeses { |
25 | 25 | # complexity of 3
|
26 | 26 | cheese1: cheese(id: 1) {
|
27 | 27 | id
|
28 | 28 | flavor
|
29 | 29 | }
|
30 | 30 |
|
31 | 31 | # complexity of 4
|
32 |
| - cheese2: cheese(id: 2) @skip(if: $isSkipped) { |
| 32 | + cheese2: cheese(id: 2) { |
33 | 33 | similarCheese(source: SHEEP) {
|
34 | 34 | ... on Cheese {
|
35 | 35 | similarCheese(source: SHEEP) {
|
|
45 | 45 | complexities = reduce_result.first
|
46 | 46 | assert_equal 7, complexities
|
47 | 47 | end
|
| 48 | + end |
| 49 | + |
| 50 | + describe "with skip/include" do |
| 51 | + let(:query_string) {%| |
| 52 | + query cheeses($skip: Boolean = false, $include: Boolean = true) { |
| 53 | + fields: cheese(id: 1) { |
| 54 | + flavor |
| 55 | + origin @skip(if: $skip) |
| 56 | + source @include(if: $include) |
| 57 | + } |
| 58 | + inlineFragments: cheese(id: 1) { |
| 59 | + ...on Cheese { flavor } |
| 60 | + ...on Cheese @skip(if: $skip) { origin } |
| 61 | + ...on Cheese @include(if: $include) { source } |
| 62 | + } |
| 63 | + fragmentSpreads: cheese(id: 1) { |
| 64 | + ...Flavorful |
| 65 | + ...Original @skip(if: $skip) |
| 66 | + ...Sourced @include(if: $include) |
| 67 | + } |
| 68 | + } |
| 69 | + fragment Flavorful on Cheese { flavor } |
| 70 | + fragment Original on Cheese { origin } |
| 71 | + fragment Sourced on Cheese { source } |
| 72 | + |} |
| 73 | + |
| 74 | + it "sums up all included complexities" do |
| 75 | + assert_equal 12, reduce_result.first |
| 76 | + end |
48 | 77 |
|
49 | 78 | describe "when skipped by directives" do
|
50 |
| - let(:variables) { { "isSkipped" => true } } |
51 |
| - it "doesn't include skipped fields" do |
52 |
| - complexity = reduce_result.first |
53 |
| - assert_equal 3, complexity |
| 79 | + let(:variables) { { "skip" => true, "include" => false } } |
| 80 | + it "doesn't include skipped fields and fragments" do |
| 81 | + assert_equal 6, reduce_result.first |
54 | 82 | end
|
55 | 83 | end
|
56 | 84 | end
|
|
0 commit comments