Skip to content

Commit 6e9e20a

Browse files
authored
polish: reorder tests to match 16.x.x (#4588)
1 parent ea10d7c commit 6e9e20a

File tree

1 file changed

+175
-174
lines changed

1 file changed

+175
-174
lines changed

src/language/__tests__/parser-test.ts

Lines changed: 175 additions & 174 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,180 @@ describe('Parser', () => {
757757
});
758758
});
759759

760+
describe('parseSchemaCoordinate', () => {
761+
it('parses Name', () => {
762+
const result = parseSchemaCoordinate('MyType');
763+
expectJSON(result).toDeepEqual({
764+
kind: Kind.TYPE_COORDINATE,
765+
loc: { start: 0, end: 6 },
766+
name: {
767+
kind: Kind.NAME,
768+
loc: { start: 0, end: 6 },
769+
value: 'MyType',
770+
},
771+
});
772+
});
773+
774+
it('parses Name . Name', () => {
775+
const result = parseSchemaCoordinate('MyType.field');
776+
expectJSON(result).toDeepEqual({
777+
kind: Kind.MEMBER_COORDINATE,
778+
loc: { start: 0, end: 12 },
779+
name: {
780+
kind: Kind.NAME,
781+
loc: { start: 0, end: 6 },
782+
value: 'MyType',
783+
},
784+
memberName: {
785+
kind: Kind.NAME,
786+
loc: { start: 7, end: 12 },
787+
value: 'field',
788+
},
789+
});
790+
});
791+
792+
it('rejects Name . Name . Name', () => {
793+
expect(() => parseSchemaCoordinate('MyType.field.deep'))
794+
.to.throw()
795+
.to.deep.include({
796+
message: 'Syntax Error: Expected <EOF>, found ".".',
797+
locations: [{ line: 1, column: 13 }],
798+
});
799+
});
800+
801+
it('parses Name . Name ( Name : )', () => {
802+
const result = parseSchemaCoordinate('MyType.field(arg:)');
803+
expectJSON(result).toDeepEqual({
804+
kind: Kind.ARGUMENT_COORDINATE,
805+
loc: { start: 0, end: 18 },
806+
name: {
807+
kind: Kind.NAME,
808+
loc: { start: 0, end: 6 },
809+
value: 'MyType',
810+
},
811+
fieldName: {
812+
kind: Kind.NAME,
813+
loc: { start: 7, end: 12 },
814+
value: 'field',
815+
},
816+
argumentName: {
817+
kind: Kind.NAME,
818+
loc: { start: 13, end: 16 },
819+
value: 'arg',
820+
},
821+
});
822+
});
823+
824+
it('rejects Name . Name ( Name : Name )', () => {
825+
expect(() => parseSchemaCoordinate('MyType.field(arg: value)'))
826+
.to.throw()
827+
.to.deep.include({
828+
message: 'Syntax Error: Invalid character: " ".',
829+
locations: [{ line: 1, column: 18 }],
830+
});
831+
});
832+
833+
it('parses @ Name', () => {
834+
const result = parseSchemaCoordinate('@myDirective');
835+
expectJSON(result).toDeepEqual({
836+
kind: Kind.DIRECTIVE_COORDINATE,
837+
loc: { start: 0, end: 12 },
838+
name: {
839+
kind: Kind.NAME,
840+
loc: { start: 1, end: 12 },
841+
value: 'myDirective',
842+
},
843+
});
844+
});
845+
846+
it('parses @ Name ( Name : )', () => {
847+
const result = parseSchemaCoordinate('@myDirective(arg:)');
848+
expectJSON(result).toDeepEqual({
849+
kind: Kind.DIRECTIVE_ARGUMENT_COORDINATE,
850+
loc: { start: 0, end: 18 },
851+
name: {
852+
kind: Kind.NAME,
853+
loc: { start: 1, end: 12 },
854+
value: 'myDirective',
855+
},
856+
argumentName: {
857+
kind: Kind.NAME,
858+
loc: { start: 13, end: 16 },
859+
value: 'arg',
860+
},
861+
});
862+
});
863+
864+
it('parses __Type', () => {
865+
const result = parseSchemaCoordinate('__Type');
866+
expectJSON(result).toDeepEqual({
867+
kind: Kind.TYPE_COORDINATE,
868+
loc: { start: 0, end: 6 },
869+
name: {
870+
kind: Kind.NAME,
871+
loc: { start: 0, end: 6 },
872+
value: '__Type',
873+
},
874+
});
875+
});
876+
877+
it('parses Type.__metafield', () => {
878+
const result = parseSchemaCoordinate('Type.__metafield');
879+
expectJSON(result).toDeepEqual({
880+
kind: Kind.MEMBER_COORDINATE,
881+
loc: { start: 0, end: 16 },
882+
name: {
883+
kind: Kind.NAME,
884+
loc: { start: 0, end: 4 },
885+
value: 'Type',
886+
},
887+
memberName: {
888+
kind: Kind.NAME,
889+
loc: { start: 5, end: 16 },
890+
value: '__metafield',
891+
},
892+
});
893+
});
894+
895+
it('parses Type.__metafield(arg:)', () => {
896+
const result = parseSchemaCoordinate('Type.__metafield(arg:)');
897+
expectJSON(result).toDeepEqual({
898+
kind: Kind.ARGUMENT_COORDINATE,
899+
loc: { start: 0, end: 22 },
900+
name: {
901+
kind: Kind.NAME,
902+
loc: { start: 0, end: 4 },
903+
value: 'Type',
904+
},
905+
fieldName: {
906+
kind: Kind.NAME,
907+
loc: { start: 5, end: 16 },
908+
value: '__metafield',
909+
},
910+
argumentName: {
911+
kind: Kind.NAME,
912+
loc: { start: 17, end: 20 },
913+
value: 'arg',
914+
},
915+
});
916+
});
917+
918+
it('rejects @ Name . Name', () => {
919+
expect(() => parseSchemaCoordinate('@myDirective.field'))
920+
.to.throw()
921+
.to.deep.include({
922+
message: 'Syntax Error: Expected <EOF>, found ".".',
923+
locations: [{ line: 1, column: 13 }],
924+
});
925+
});
926+
927+
it('accepts a Source object', () => {
928+
expect(parseSchemaCoordinate('MyType')).to.deep.equal(
929+
parseSchemaCoordinate(new Source('MyType')),
930+
);
931+
});
932+
});
933+
760934
describe('operation and variable definition descriptions', () => {
761935
it('parses operation with description and variable descriptions', () => {
762936
const result = parse(dedent`
@@ -771,6 +945,7 @@ describe('Parser', () => {
771945
}
772946
`);
773947

948+
// Find the operation definition
774949
const opDef = result.definitions.find(
775950
(d) => d.kind === Kind.OPERATION_DEFINITION,
776951
);
@@ -1031,178 +1206,4 @@ describe('Parser', () => {
10311206
});
10321207
});
10331208
});
1034-
1035-
describe('parseSchemaCoordinate', () => {
1036-
it('parses Name', () => {
1037-
const result = parseSchemaCoordinate('MyType');
1038-
expectJSON(result).toDeepEqual({
1039-
kind: Kind.TYPE_COORDINATE,
1040-
loc: { start: 0, end: 6 },
1041-
name: {
1042-
kind: Kind.NAME,
1043-
loc: { start: 0, end: 6 },
1044-
value: 'MyType',
1045-
},
1046-
});
1047-
});
1048-
1049-
it('parses Name . Name', () => {
1050-
const result = parseSchemaCoordinate('MyType.field');
1051-
expectJSON(result).toDeepEqual({
1052-
kind: Kind.MEMBER_COORDINATE,
1053-
loc: { start: 0, end: 12 },
1054-
name: {
1055-
kind: Kind.NAME,
1056-
loc: { start: 0, end: 6 },
1057-
value: 'MyType',
1058-
},
1059-
memberName: {
1060-
kind: Kind.NAME,
1061-
loc: { start: 7, end: 12 },
1062-
value: 'field',
1063-
},
1064-
});
1065-
});
1066-
1067-
it('rejects Name . Name . Name', () => {
1068-
expect(() => parseSchemaCoordinate('MyType.field.deep'))
1069-
.to.throw()
1070-
.to.deep.include({
1071-
message: 'Syntax Error: Expected <EOF>, found ".".',
1072-
locations: [{ line: 1, column: 13 }],
1073-
});
1074-
});
1075-
1076-
it('parses Name . Name ( Name : )', () => {
1077-
const result = parseSchemaCoordinate('MyType.field(arg:)');
1078-
expectJSON(result).toDeepEqual({
1079-
kind: Kind.ARGUMENT_COORDINATE,
1080-
loc: { start: 0, end: 18 },
1081-
name: {
1082-
kind: Kind.NAME,
1083-
loc: { start: 0, end: 6 },
1084-
value: 'MyType',
1085-
},
1086-
fieldName: {
1087-
kind: Kind.NAME,
1088-
loc: { start: 7, end: 12 },
1089-
value: 'field',
1090-
},
1091-
argumentName: {
1092-
kind: Kind.NAME,
1093-
loc: { start: 13, end: 16 },
1094-
value: 'arg',
1095-
},
1096-
});
1097-
});
1098-
1099-
it('rejects Name . Name ( Name : Name )', () => {
1100-
expect(() => parseSchemaCoordinate('MyType.field(arg: value)'))
1101-
.to.throw()
1102-
.to.deep.include({
1103-
message: 'Syntax Error: Invalid character: " ".',
1104-
locations: [{ line: 1, column: 18 }],
1105-
});
1106-
});
1107-
1108-
it('parses @ Name', () => {
1109-
const result = parseSchemaCoordinate('@myDirective');
1110-
expectJSON(result).toDeepEqual({
1111-
kind: Kind.DIRECTIVE_COORDINATE,
1112-
loc: { start: 0, end: 12 },
1113-
name: {
1114-
kind: Kind.NAME,
1115-
loc: { start: 1, end: 12 },
1116-
value: 'myDirective',
1117-
},
1118-
});
1119-
});
1120-
1121-
it('parses @ Name ( Name : )', () => {
1122-
const result = parseSchemaCoordinate('@myDirective(arg:)');
1123-
expectJSON(result).toDeepEqual({
1124-
kind: Kind.DIRECTIVE_ARGUMENT_COORDINATE,
1125-
loc: { start: 0, end: 18 },
1126-
name: {
1127-
kind: Kind.NAME,
1128-
loc: { start: 1, end: 12 },
1129-
value: 'myDirective',
1130-
},
1131-
argumentName: {
1132-
kind: Kind.NAME,
1133-
loc: { start: 13, end: 16 },
1134-
value: 'arg',
1135-
},
1136-
});
1137-
});
1138-
1139-
it('parses __Type', () => {
1140-
const result = parseSchemaCoordinate('__Type');
1141-
expectJSON(result).toDeepEqual({
1142-
kind: Kind.TYPE_COORDINATE,
1143-
loc: { start: 0, end: 6 },
1144-
name: {
1145-
kind: Kind.NAME,
1146-
loc: { start: 0, end: 6 },
1147-
value: '__Type',
1148-
},
1149-
});
1150-
});
1151-
1152-
it('parses Type.__metafield', () => {
1153-
const result = parseSchemaCoordinate('Type.__metafield');
1154-
expectJSON(result).toDeepEqual({
1155-
kind: Kind.MEMBER_COORDINATE,
1156-
loc: { start: 0, end: 16 },
1157-
name: {
1158-
kind: Kind.NAME,
1159-
loc: { start: 0, end: 4 },
1160-
value: 'Type',
1161-
},
1162-
memberName: {
1163-
kind: Kind.NAME,
1164-
loc: { start: 5, end: 16 },
1165-
value: '__metafield',
1166-
},
1167-
});
1168-
});
1169-
1170-
it('parses Type.__metafield(arg:)', () => {
1171-
const result = parseSchemaCoordinate('Type.__metafield(arg:)');
1172-
expectJSON(result).toDeepEqual({
1173-
kind: Kind.ARGUMENT_COORDINATE,
1174-
loc: { start: 0, end: 22 },
1175-
name: {
1176-
kind: Kind.NAME,
1177-
loc: { start: 0, end: 4 },
1178-
value: 'Type',
1179-
},
1180-
fieldName: {
1181-
kind: Kind.NAME,
1182-
loc: { start: 5, end: 16 },
1183-
value: '__metafield',
1184-
},
1185-
argumentName: {
1186-
kind: Kind.NAME,
1187-
loc: { start: 17, end: 20 },
1188-
value: 'arg',
1189-
},
1190-
});
1191-
});
1192-
1193-
it('rejects @ Name . Name', () => {
1194-
expect(() => parseSchemaCoordinate('@myDirective.field'))
1195-
.to.throw()
1196-
.to.deep.include({
1197-
message: 'Syntax Error: Expected <EOF>, found ".".',
1198-
locations: [{ line: 1, column: 13 }],
1199-
});
1200-
});
1201-
1202-
it('accepts a Source object', () => {
1203-
expect(parseSchemaCoordinate('MyType')).to.deep.equal(
1204-
parseSchemaCoordinate(new Source('MyType')),
1205-
);
1206-
});
1207-
});
12081209
});

0 commit comments

Comments
 (0)