Skip to content

Commit 0300735

Browse files
committed
add breaking test for interfering RenameInputObjectFields transforms
1 parent 2c1ddbe commit 0300735

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

packages/wrap/tests/transformRenameInputObjectFields.test.ts

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,74 @@ describe('RenameInputObjectFields', () => {
4141
return 'field3';
4242
}
4343
}),
44+
new RenameInputObjectFields((typeName, fieldName) => {
45+
if (typeName === 'InputObject' && fieldName === 'field1') {
46+
return 'field0';
47+
}
48+
}),
49+
],
50+
});
51+
52+
const query = /* GraphQL */ `
53+
query ($argument: InputObject) {
54+
test(argument: $argument) {
55+
field1
56+
field2
57+
}
58+
}
59+
`;
60+
61+
const result = await execute({
62+
schema: transformedSchema,
63+
document: parse(query),
64+
variableValues: { argument: { field0: 'field1', field3: 'field2' } },
65+
});
66+
if (isIncrementalResult(result)) throw Error('result is incremental');
67+
assertSome(result.data);
68+
const testData: any = result.data['test'];
69+
expect(testData.field1).toBe('field1');
70+
expect(testData.field2).toBe('field2');
71+
});
72+
73+
test('renaming with static arguments works', async () => {
74+
const schema = makeExecutableSchema({
75+
typeDefs: /* GraphQL */ `
76+
input InputObject {
77+
field1: String
78+
field2: String
79+
}
80+
81+
type OutputObject {
82+
field1: String
83+
field2: String
84+
}
85+
86+
type Query {
87+
test(argument: InputObject): OutputObject
88+
}
89+
`,
90+
resolvers: {
91+
Query: {
92+
test: (_root, args) => {
93+
return args.argument;
94+
},
95+
},
96+
},
97+
});
98+
99+
const transformedSchema = wrapSchema({
100+
schema,
101+
transforms: [
102+
new RenameInputObjectFields((typeName, fieldName) => {
103+
if (typeName === 'InputObject' && fieldName === 'field2') {
104+
return 'field3';
105+
}
106+
}),
107+
new RenameInputObjectFields((typeName, fieldName) => {
108+
if (typeName === 'InputObject' && fieldName === 'field1') {
109+
return 'field0';
110+
}
111+
}),
44112
],
45113
});
46114

0 commit comments

Comments
 (0)