Skip to content

Commit 0b75c9b

Browse files
committed
FIELD_CHANGED_KIND was updated in both implem and test
1 parent 5f73d30 commit 0b75c9b

File tree

2 files changed

+108
-1
lines changed

2 files changed

+108
-1
lines changed

src/utilities/__tests__/findBreakingChanges-test.js

Lines changed: 96 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,50 +154,98 @@ describe('findBreakingChanges', () => {
154154
type: BreakingChangeType.FIELD_CHANGED_KIND,
155155
description: 'Type1.field3 changed type from String to Boolean.',
156156
});
157+
// $FlowFixMe
158+
expect(changes[1].oldNode.type.name.value).to.equal('String');
159+
// $FlowFixMe
160+
expect(changes[1].newNode.type.name.value).to.equal('Boolean');
157161
expect(changes[2]).to.deep.include({
158162
type: BreakingChangeType.FIELD_CHANGED_KIND,
159163
description: 'Type1.field4 changed type from TypeA to TypeB.',
160164
});
165+
// $FlowFixMe
166+
expect(changes[2].oldNode.type.name.value).to.equal('TypeA');
167+
// $FlowFixMe
168+
expect(changes[2].newNode.type.name.value).to.equal('TypeB');
161169
expect(changes[3]).to.deep.include({
162170
type: BreakingChangeType.FIELD_CHANGED_KIND,
163171
description: 'Type1.field6 changed type from String to [String].',
164172
});
173+
// $FlowFixMe
174+
expect(changes[3].oldNode.type.name.value).to.equal('String');
175+
// $FlowFixMe
176+
expect(changes[3].newNode.type.kind).to.equal('ListType');
165177
expect(changes[4]).to.deep.include({
166178
type: BreakingChangeType.FIELD_CHANGED_KIND,
167179
description: 'Type1.field7 changed type from [String] to String.',
168180
});
181+
// $FlowFixMe
182+
expect(changes[4].oldNode.type.kind).to.equal('ListType');
183+
// $FlowFixMe
184+
expect(changes[4].newNode.type.name.value).to.equal('String');
169185
expect(changes[5]).to.deep.include({
170186
type: BreakingChangeType.FIELD_CHANGED_KIND,
171187
description: 'Type1.field9 changed type from Int! to Int.',
172188
});
189+
// $FlowFixMe
190+
expect(changes[5].oldNode.type.kind).to.equal('NonNullType');
191+
// $FlowFixMe
192+
expect(changes[5].newNode.type.name.value).to.equal('Int');
173193
expect(changes[6]).to.deep.include({
174194
type: BreakingChangeType.FIELD_CHANGED_KIND,
175195
description: 'Type1.field10 changed type from [Int]! to [Int].',
176196
});
197+
// $FlowFixMe
198+
expect(changes[6].oldNode.type.kind).to.equal('NonNullType');
199+
// $FlowFixMe
200+
expect(changes[6].newNode.type.kind).to.equal('ListType');
177201
expect(changes[7]).to.deep.include({
178202
type: BreakingChangeType.FIELD_CHANGED_KIND,
179203
description: 'Type1.field11 changed type from Int to [Int]!.',
180204
});
205+
// $FlowFixMe
206+
expect(changes[7].oldNode.type.name.value).to.equal('Int');
207+
// $FlowFixMe
208+
expect(changes[7].newNode.type.kind).to.equal('NonNullType');
181209
expect(changes[8]).to.deep.include({
182210
type: BreakingChangeType.FIELD_CHANGED_KIND,
183211
description: 'Type1.field13 changed type from [Int!] to [Int].',
184212
});
213+
// $FlowFixMe
214+
expect(changes[8].oldNode.type.type.kind).to.equal('NonNullType');
215+
// $FlowFixMe
216+
expect(changes[8].newNode.type.kind).to.equal('ListType');
185217
expect(changes[9]).to.deep.include({
186218
type: BreakingChangeType.FIELD_CHANGED_KIND,
187219
description: 'Type1.field14 changed type from [Int] to [[Int]].',
188220
});
221+
// $FlowFixMe
222+
expect(changes[9].oldNode.type.type.name.value).to.equal('Int');
223+
// $FlowFixMe
224+
expect(changes[9].newNode.type.type.kind).to.equal('ListType');
189225
expect(changes[10]).to.deep.include({
190226
type: BreakingChangeType.FIELD_CHANGED_KIND,
191227
description: 'Type1.field15 changed type from [[Int]] to [Int].',
192228
});
229+
// $FlowFixMe
230+
expect(changes[10].oldNode.type.type.kind).to.equal('ListType');
231+
// $FlowFixMe
232+
expect(changes[10].newNode.type.type.name.value).to.equal('Int');
193233
expect(changes[11]).to.deep.include({
194234
type: BreakingChangeType.FIELD_CHANGED_KIND,
195235
description: 'Type1.field16 changed type from Int! to [Int]!.',
196236
});
237+
// $FlowFixMe
238+
expect(changes[11].oldNode.type.type.name.value).to.equal('Int');
239+
// $FlowFixMe
240+
expect(changes[11].newNode.type.type.kind).to.equal('ListType');
197241
expect(changes[12]).to.deep.include({
198242
type: BreakingChangeType.FIELD_CHANGED_KIND,
199243
description: 'Type1.field18 changed type from [[Int!]!] to [[Int!]].',
200244
});
245+
// $FlowFixMe
246+
expect(changes[12].oldNode.type.type.kind).to.equal('NonNullType');
247+
// $FlowFixMe
248+
expect(changes[12].newNode.type.type.kind).to.equal('ListType');
201249
});
202250

203251
it('should detect if fields on input types changed kind or were removed', () => {
@@ -245,6 +293,10 @@ describe('findBreakingChanges', () => {
245293
type: BreakingChangeType.FIELD_CHANGED_KIND,
246294
description: 'InputType1.field1 changed type from String to Int.',
247295
});
296+
// $FlowFixMe
297+
expect(changes[0].oldNode.type.name.value).to.equal('String');
298+
// $FlowFixMe
299+
expect(changes[0].newNode.type.name.value).to.equal('Int');
248300
expect(changes[1]).to.deep.include({
249301
type: BreakingChangeType.FIELD_REMOVED,
250302
description: 'InputType1.field2 was removed.',
@@ -256,39 +308,77 @@ describe('findBreakingChanges', () => {
256308
type: BreakingChangeType.FIELD_CHANGED_KIND,
257309
description: 'InputType1.field3 changed type from [String] to String.',
258310
});
311+
// $FlowFixMe
312+
expect(changes[2].oldNode.type.kind).to.equal('ListType');
313+
// $FlowFixMe
314+
expect(changes[2].newNode.type.name.value).to.equal('String');
259315
expect(changes[3]).to.deep.include({
260316
type: BreakingChangeType.FIELD_CHANGED_KIND,
261317
description: 'InputType1.field5 changed type from String to String!.',
262318
});
319+
// $FlowFixMe
320+
expect(changes[3].oldNode.type.name.value).to.equal('String');
321+
// $FlowFixMe
322+
expect(changes[3].newNode.type.kind).to.equal('NonNullType');
263323
expect(changes[4]).to.deep.include({
264324
type: BreakingChangeType.FIELD_CHANGED_KIND,
265325
description: 'InputType1.field6 changed type from [Int] to [Int]!.',
266326
});
327+
// $FlowFixMe
328+
expect(changes[4].oldNode.type.kind).to.equal('ListType');
329+
// $FlowFixMe
330+
expect(changes[4].newNode.type.kind).to.equal('NonNullType');
267331
expect(changes[5]).to.deep.include({
268332
type: BreakingChangeType.FIELD_CHANGED_KIND,
269333
description: 'InputType1.field8 changed type from Int to [Int]!.',
270334
});
335+
// $FlowFixMe
336+
expect(changes[5].oldNode.type.name.value).to.equal('Int');
337+
// $FlowFixMe
338+
expect(changes[5].newNode.type.kind).to.equal('NonNullType');
271339
expect(changes[6]).to.deep.include({
272340
type: BreakingChangeType.FIELD_CHANGED_KIND,
273341
description: 'InputType1.field9 changed type from [Int] to [Int!].',
274342
});
343+
// $FlowFixMe
344+
expect(changes[6].oldNode.type.type.name.value).to.equal('Int');
345+
// $FlowFixMe
346+
expect(changes[6].newNode.type.type.kind).to.equal('NonNullType');
275347
expect(changes[7]).to.deep.include({
276348
type: BreakingChangeType.FIELD_CHANGED_KIND,
277349
description: 'InputType1.field11 changed type from [Int] to [[Int]].',
278350
});
351+
// $FlowFixMe
352+
expect(changes[7].oldNode.type.type.name.value).to.equal('Int');
353+
// $FlowFixMe
354+
expect(changes[7].newNode.type.type.kind).to.equal('ListType');
279355
expect(changes[8]).to.deep.include({
280356
type: BreakingChangeType.FIELD_CHANGED_KIND,
281357
description: 'InputType1.field12 changed type from [[Int]] to [Int].',
282358
});
359+
// $FlowFixMe
360+
expect(changes[8].oldNode.type.type.kind).to.equal('ListType');
361+
// $FlowFixMe
362+
expect(changes[8].newNode.type.type.name.value).to.equal('Int');
283363
expect(changes[9]).to.deep.include({
284364
type: BreakingChangeType.FIELD_CHANGED_KIND,
285365
description: 'InputType1.field13 changed type from Int! to [Int]!.',
286366
});
367+
// $FlowFixMe
368+
expect(changes[9].oldNode.type.type.name.value).to.equal('Int');
369+
// $FlowFixMe
370+
expect(changes[9].newNode.type.type.kind).to.equal('ListType');
287371
expect(changes[10]).to.deep.include({
288372
type: BreakingChangeType.FIELD_CHANGED_KIND,
289373
description:
290374
'InputType1.field15 changed type from [[Int]!] to [[Int!]!].',
291375
});
376+
// $FlowFixMe
377+
expect(changes[10].oldNode.type.type.type.type.name.value).to.equal('Int');
378+
// $FlowFixMe
379+
expect(changes[10].newNode.type.type.type.type.kind).to.equal(
380+
'NonNullType',
381+
);
292382
});
293383

294384
it('should detect if a required field is added to an input type', () => {
@@ -591,7 +681,8 @@ describe('findBreakingChanges', () => {
591681
type: BreakingChangeType.REQUIRED_ARG_ADDED,
592682
description: 'A required arg newRequiredArg on Type1.field1 was added',
593683
});
594-
expect(changes[0]).to.have.property('newNode');
684+
// $FlowFixMe
685+
expect(changes[0].newNode.name.value).to.equal('newRequiredArg');
595686
expect(changes[0]).not.to.have.property('oldNode');
596687
});
597688

@@ -770,6 +861,10 @@ describe('findBreakingChanges', () => {
770861
description:
771862
'TypeThatHasBreakingFieldChanges.field2 changed type from String to Boolean.',
772863
});
864+
// $FlowFixMe
865+
expect(changes[4].oldNode.type.name.value).to.equal('String');
866+
// $FlowFixMe
867+
expect(changes[4].newNode.type.name.value).to.equal('Boolean');
773868
expect(changes[5]).to.deep.include({
774869
type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,
775870
description:

src/utilities/findBreakingChanges.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,12 @@ function findFieldsThatChangedTypeOnObjectOrInterfaceTypes(
365365
description:
366366
`${typeName}.${fieldName} changed type from ` +
367367
`${oldFieldTypeString} to ${newFieldTypeString}.`,
368+
oldNode: oldTypeFieldsDef[fieldName].astNode
369+
? oldTypeFieldsDef[fieldName].astNode
370+
: undefined,
371+
newNode: newTypeFieldsDef[fieldName].astNode
372+
? newTypeFieldsDef[fieldName].astNode
373+
: undefined,
368374
});
369375
}
370376
}
@@ -424,6 +430,12 @@ function findFieldsThatChangedTypeOnInputObjectTypes(
424430
description:
425431
`${typeName}.${fieldName} changed type from ` +
426432
`${oldFieldTypeString} to ${newFieldTypeString}.`,
433+
oldNode: oldTypeFieldsDef[fieldName].astNode
434+
? oldTypeFieldsDef[fieldName].astNode
435+
: undefined,
436+
newNode: newTypeFieldsDef[fieldName].astNode
437+
? newTypeFieldsDef[fieldName].astNode
438+
: undefined,
427439
});
428440
}
429441
}

0 commit comments

Comments
 (0)