...

Text file src/github.com/vektah/gqlparser/v2/validator/imported/spec/SingleFieldSubscriptionsRule.spec.yml

Documentation: github.com/vektah/gqlparser/v2/validator/imported/spec

     1- name: valid subscription
     2  rule: SingleFieldSubscriptions
     3  schema: 15
     4  query: |2-
     5
     6          subscription ImportantEmails {
     7            importantEmails
     8          }
     9
    10  errors: []
    11- name: valid subscription with fragment
    12  rule: SingleFieldSubscriptions
    13  schema: 15
    14  query: |2-
    15
    16          subscription sub {
    17            ...newMessageFields
    18          }
    19          
    20          fragment newMessageFields on SubscriptionRoot {
    21            newMessage {
    22              body
    23              sender
    24            }
    25          }
    26
    27  errors: []
    28- name: valid subscription with fragment and field
    29  rule: SingleFieldSubscriptions
    30  schema: 15
    31  query: |2-
    32
    33          subscription sub {
    34            newMessage {
    35              body
    36            }
    37            ...newMessageFields
    38          }
    39          
    40          fragment newMessageFields on SubscriptionRoot {
    41            newMessage {
    42              body
    43              sender
    44            }
    45          }
    46
    47  errors: []
    48- name: fails with more than one root field
    49  rule: SingleFieldSubscriptions
    50  schema: 15
    51  query: |2-
    52
    53          subscription ImportantEmails {
    54            importantEmails
    55            notImportantEmails
    56          }
    57
    58  errors:
    59    - message: Subscription "ImportantEmails" must select only one top level field.
    60      locations:
    61        - {line: 4, column: 9}
    62- name: fails with more than one root field including introspection
    63  rule: SingleFieldSubscriptions
    64  schema: 15
    65  query: |2-
    66
    67          subscription ImportantEmails {
    68            importantEmails
    69            __typename
    70          }
    71
    72  errors:
    73    - message: Subscription "ImportantEmails" must select only one top level field.
    74      locations:
    75        - {line: 4, column: 9}
    76    - message: Subscription "ImportantEmails" must not select an introspection top level field.
    77      locations:
    78        - {line: 4, column: 9}
    79- name: fails with more than one root field including aliased introspection via fragment
    80  rule: SingleFieldSubscriptions
    81  schema: 15
    82  query: |2-
    83
    84          subscription ImportantEmails {
    85            importantEmails
    86            ...Introspection
    87          }
    88          fragment Introspection on SubscriptionRoot {
    89            typename: __typename
    90          }
    91
    92  errors:
    93    - message: Subscription "ImportantEmails" must select only one top level field.
    94      locations:
    95        - {line: 7, column: 9}
    96    - message: Subscription "ImportantEmails" must not select an introspection top level field.
    97      locations:
    98        - {line: 7, column: 9}
    99- name: fails with many more than one root field
   100  rule: SingleFieldSubscriptions
   101  schema: 15
   102  query: |2-
   103
   104          subscription ImportantEmails {
   105            importantEmails
   106            notImportantEmails
   107            spamEmails
   108          }
   109
   110  errors:
   111    - message: Subscription "ImportantEmails" must select only one top level field.
   112      locations:
   113        - {line: 4, column: 9}
   114        - {line: 5, column: 9}
   115- name: fails with many more than one root field via fragments
   116  rule: SingleFieldSubscriptions
   117  schema: 15
   118  query: |2-
   119
   120          subscription ImportantEmails {
   121            importantEmails
   122            ... {
   123              more: moreImportantEmails
   124            }
   125            ...NotImportantEmails
   126          }
   127          fragment NotImportantEmails on SubscriptionRoot {
   128            notImportantEmails
   129            deleted: deletedEmails
   130            ...SpamEmails
   131          }
   132          fragment SpamEmails on SubscriptionRoot {
   133            spamEmails
   134          }
   135
   136  errors:
   137    - message: Subscription "ImportantEmails" must select only one top level field.
   138      locations:
   139        - {line: 5, column: 11}
   140        - {line: 10, column: 9}
   141        - {line: 11, column: 9}
   142        - {line: 15, column: 9}
   143- name: does not infinite loop on recursive fragments
   144  rule: SingleFieldSubscriptions
   145  schema: 15
   146  query: |2-
   147
   148          subscription NoInfiniteLoop {
   149            ...A
   150          }
   151          fragment A on SubscriptionRoot {
   152            ...A
   153          }
   154
   155  errors: []
   156- name: fails with many more than one root field via fragments (anonymous)
   157  rule: SingleFieldSubscriptions
   158  schema: 15
   159  query: |2-
   160
   161          subscription {
   162            importantEmails
   163            ... {
   164              more: moreImportantEmails
   165              ...NotImportantEmails
   166            }
   167            ...NotImportantEmails
   168          }
   169          fragment NotImportantEmails on SubscriptionRoot {
   170            notImportantEmails
   171            deleted: deletedEmails
   172            ... {
   173              ... {
   174                archivedEmails
   175              }
   176            }
   177            ...SpamEmails
   178          }
   179          fragment SpamEmails on SubscriptionRoot {
   180            spamEmails
   181            ...NonExistentFragment
   182          }
   183
   184  errors:
   185    - message: Anonymous Subscription must select only one top level field.
   186      locations:
   187        - {line: 5, column: 11}
   188        - {line: 11, column: 9}
   189        - {line: 12, column: 9}
   190        - {line: 15, column: 13}
   191        - {line: 21, column: 9}
   192- name: fails with more than one root field in anonymous subscriptions
   193  rule: SingleFieldSubscriptions
   194  schema: 15
   195  query: |2-
   196
   197          subscription {
   198            importantEmails
   199            notImportantEmails
   200          }
   201
   202  errors:
   203    - message: Anonymous Subscription must select only one top level field.
   204      locations:
   205        - {line: 4, column: 9}
   206- name: fails with introspection field
   207  rule: SingleFieldSubscriptions
   208  schema: 15
   209  query: |2-
   210
   211          subscription ImportantEmails {
   212            __typename
   213          }
   214
   215  errors:
   216    - message: Subscription "ImportantEmails" must not select an introspection top level field.
   217      locations:
   218        - {line: 3, column: 9}
   219- name: fails with introspection field in anonymous subscription
   220  rule: SingleFieldSubscriptions
   221  schema: 15
   222  query: |2-
   223
   224          subscription {
   225            __typename
   226          }
   227
   228  errors:
   229    - message: Anonymous Subscription must not select an introspection top level field.
   230      locations:
   231        - {line: 3, column: 9}
   232- name: skips if not subscription type
   233  rule: SingleFieldSubscriptions
   234  schema: 16
   235  query: |2-
   236
   237            subscription {
   238              __typename
   239            }
   240
   241  errors: []

View as plain text