import 'package:test/test.dart';
import 'common.dart';

var githubSrc = r'''
query searchRepos($queryString: String!, $repositoryOrder: RepositoryOrder, $first: Int!) {
  search(type: REPOSITORY, query: $queryString, first: $first) {
    ...SearchResultItemConnection
  }
}
''';

void main() {
  test('can parse formerly-reserved words', () {
    var def = parse(githubSrc).parseOperationDefinition();
    expect(def.isQuery, isTrue);
    expect(def.variableDefinitions.variableDefinitions, hasLength(3));

    var searchField = def.selectionSet.selections[0].field;
    expect(searchField.fieldName.name, 'search');

    var argNames = searchField.arguments.map((a) => a.name).toList();
    expect(argNames, ['type', 'query', 'first']);
  });
}