@@ -9,9 +9,25 @@ void main() {
99 'Interface fragments' ,
1010 () async => testGenerator (
1111 query: r'''
12+ fragment InterfaceFragment2 on InterfaceA {
13+ interface {
14+ s
15+ }
16+
17+ ...on ImplementationA {
18+ b
19+ }
20+ ...on ImplementationB {
21+ i2
22+ }
23+ }
1224 fragment InterfaceFragment on InterfaceA {
1325 s
1426 i
27+ interface {
28+ ...InterfaceFragment2
29+ }
30+
1531 ...on ImplementationA {
1632 b
1733 }
@@ -46,6 +62,7 @@ void main() {
4662 interface InterfaceA {
4763 s: String
4864 i: Int
65+ interface: InterfaceA
4966 }
5067
5168 union UnionA = ImplementationA | ImplementationB
@@ -75,6 +92,56 @@ final LibraryDefinition libraryDefinition =
7592 name: QueryName (name: r'SomeQuery$_Query' ),
7693 operationName: r'some_query' ,
7794 classes: [
95+ ClassDefinition (
96+ name: ClassName (name: r'InterfaceFragment2Mixin$_InterfaceA' ),
97+ properties: [
98+ ClassProperty (
99+ type: TypeName (name: r'String' ),
100+ name: ClassPropertyName (name: r's' ),
101+ isResolveType: false )
102+ ],
103+ factoryPossibilities: {},
104+ typeNameField: ClassPropertyName (name: r'__typename' ),
105+ isInput: false ),
106+ ClassDefinition (
107+ name: ClassName (name: r'InterfaceFragment2Mixin$_ImplementationA' ),
108+ properties: [
109+ ClassProperty (
110+ type: TypeName (name: r'bool' ),
111+ name: ClassPropertyName (name: r'b' ),
112+ isResolveType: false )
113+ ],
114+ mixins: [FragmentName (name: r'InterfaceFragment2Mixin' )],
115+ factoryPossibilities: {},
116+ typeNameField: ClassPropertyName (name: r'__typename' ),
117+ isInput: false ),
118+ ClassDefinition (
119+ name: ClassName (name: r'InterfaceFragment2Mixin$_ImplementationB' ),
120+ properties: [
121+ ClassProperty (
122+ type: TypeName (name: r'int' ),
123+ name: ClassPropertyName (name: r'i2' ),
124+ isResolveType: false )
125+ ],
126+ mixins: [FragmentName (name: r'InterfaceFragment2Mixin' )],
127+ factoryPossibilities: {},
128+ typeNameField: ClassPropertyName (name: r'__typename' ),
129+ isInput: false ),
130+ FragmentClassDefinition (
131+ name: FragmentName (name: r'InterfaceFragment2Mixin' ),
132+ properties: [
133+ ClassProperty (
134+ type: TypeName (name: r'InterfaceFragment2Mixin$_InterfaceA' ),
135+ name: ClassPropertyName (name: r'interface' ),
136+ annotations: [r'''JsonKey(name: 'interface')''' ],
137+ isResolveType: false )
138+ ]),
139+ ClassDefinition (
140+ name: ClassName (name: r'InterfaceFragmentMixin$_InterfaceA' ),
141+ mixins: [FragmentName (name: r'InterfaceFragment2Mixin' )],
142+ factoryPossibilities: {},
143+ typeNameField: ClassPropertyName (name: r'__typename' ),
144+ isInput: false ),
78145 ClassDefinition (
79146 name: ClassName (name: r'InterfaceFragmentMixin$_ImplementationA' ),
80147 properties: [
@@ -109,6 +176,11 @@ final LibraryDefinition libraryDefinition =
109176 ClassProperty (
110177 type: TypeName (name: r'int' ),
111178 name: ClassPropertyName (name: r'i' ),
179+ isResolveType: false ),
180+ ClassProperty (
181+ type: TypeName (name: r'InterfaceFragmentMixin$_InterfaceA' ),
182+ name: ClassPropertyName (name: r'interface' ),
183+ annotations: [r'''JsonKey(name: 'interface')''' ],
112184 isResolveType: false )
113185 ]),
114186 ClassDefinition (
@@ -178,12 +250,84 @@ import 'package:equatable/equatable.dart';
178250import 'package:gql/ast.dart';
179251part 'query.graphql.g.dart';
180252
253+ mixin InterfaceFragment2Mixin {
254+ @JsonKey(name: 'interface')
255+ InterfaceFragment2Mixin$InterfaceA? kw$interface;
256+ }
181257mixin InterfaceFragmentMixin {
182258 String? s;
183259 int? i;
260+ @JsonKey(name: 'interface')
261+ InterfaceFragmentMixin$InterfaceA? kw$interface;
184262}
185263mixin UnionFragmentMixin {}
186264
265+ @JsonSerializable(explicitToJson: true)
266+ class InterfaceFragment2Mixin$InterfaceA extends JsonSerializable
267+ with EquatableMixin {
268+ InterfaceFragment2Mixin$InterfaceA();
269+
270+ factory InterfaceFragment2Mixin$InterfaceA.fromJson(
271+ Map<String, dynamic> json) =>
272+ _$InterfaceFragment2Mixin$InterfaceAFromJson(json);
273+
274+ String? s;
275+
276+ @override
277+ List<Object?> get props => [s];
278+ Map<String, dynamic> toJson() =>
279+ _$InterfaceFragment2Mixin$InterfaceAToJson(this);
280+ }
281+
282+ @JsonSerializable(explicitToJson: true)
283+ class InterfaceFragment2Mixin$ImplementationA extends JsonSerializable
284+ with EquatableMixin, InterfaceFragment2Mixin {
285+ InterfaceFragment2Mixin$ImplementationA();
286+
287+ factory InterfaceFragment2Mixin$ImplementationA.fromJson(
288+ Map<String, dynamic> json) =>
289+ _$InterfaceFragment2Mixin$ImplementationAFromJson(json);
290+
291+ bool? b;
292+
293+ @override
294+ List<Object?> get props => [kw$interface, b];
295+ Map<String, dynamic> toJson() =>
296+ _$InterfaceFragment2Mixin$ImplementationAToJson(this);
297+ }
298+
299+ @JsonSerializable(explicitToJson: true)
300+ class InterfaceFragment2Mixin$ImplementationB extends JsonSerializable
301+ with EquatableMixin, InterfaceFragment2Mixin {
302+ InterfaceFragment2Mixin$ImplementationB();
303+
304+ factory InterfaceFragment2Mixin$ImplementationB.fromJson(
305+ Map<String, dynamic> json) =>
306+ _$InterfaceFragment2Mixin$ImplementationBFromJson(json);
307+
308+ int? i2;
309+
310+ @override
311+ List<Object?> get props => [kw$interface, i2];
312+ Map<String, dynamic> toJson() =>
313+ _$InterfaceFragment2Mixin$ImplementationBToJson(this);
314+ }
315+
316+ @JsonSerializable(explicitToJson: true)
317+ class InterfaceFragmentMixin$InterfaceA extends JsonSerializable
318+ with EquatableMixin, InterfaceFragment2Mixin {
319+ InterfaceFragmentMixin$InterfaceA();
320+
321+ factory InterfaceFragmentMixin$InterfaceA.fromJson(
322+ Map<String, dynamic> json) =>
323+ _$InterfaceFragmentMixin$InterfaceAFromJson(json);
324+
325+ @override
326+ List<Object?> get props => [kw$interface];
327+ Map<String, dynamic> toJson() =>
328+ _$InterfaceFragmentMixin$InterfaceAToJson(this);
329+ }
330+
187331@JsonSerializable(explicitToJson: true)
188332class InterfaceFragmentMixin$ImplementationA extends JsonSerializable
189333 with EquatableMixin, InterfaceFragmentMixin {
@@ -196,7 +340,7 @@ class InterfaceFragmentMixin$ImplementationA extends JsonSerializable
196340 bool? b;
197341
198342 @override
199- List<Object?> get props => [s, i, b];
343+ List<Object?> get props => [s, i, kw$interface, b];
200344 Map<String, dynamic> toJson() =>
201345 _$InterfaceFragmentMixin$ImplementationAToJson(this);
202346}
@@ -213,7 +357,7 @@ class InterfaceFragmentMixin$ImplementationB extends JsonSerializable
213357 int? i2;
214358
215359 @override
216- List<Object?> get props => [s, i, i2];
360+ List<Object?> get props => [s, i, kw$interface, i2];
217361 Map<String, dynamic> toJson() =>
218362 _$InterfaceFragmentMixin$ImplementationBToJson(this);
219363}
@@ -261,7 +405,7 @@ class SomeQuery$Query$InterfaceA extends JsonSerializable
261405 _$SomeQuery$Query$InterfaceAFromJson(json);
262406
263407 @override
264- List<Object?> get props => [s, i];
408+ List<Object?> get props => [s, i, kw$interface ];
265409 Map<String, dynamic> toJson() => _$SomeQuery$Query$InterfaceAToJson(this);
266410}
267411
0 commit comments