Skip to content

Commit

Permalink
add breaking test for interfering RenameInputObjectFields transforms
Browse files Browse the repository at this point in the history
  • Loading branch information
cgcoss committed Mar 3, 2023
1 parent 2c1ddbe commit 0300735
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions packages/wrap/tests/transformRenameInputObjectFields.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,74 @@ describe('RenameInputObjectFields', () => {
return 'field3';
}
}),
new RenameInputObjectFields((typeName, fieldName) => {
if (typeName === 'InputObject' && fieldName === 'field1') {
return 'field0';
}
}),
],
});

const query = /* GraphQL */ `
query ($argument: InputObject) {
test(argument: $argument) {
field1
field2
}
}
`;

const result = await execute({
schema: transformedSchema,
document: parse(query),
variableValues: { argument: { field0: 'field1', field3: 'field2' } },
});
if (isIncrementalResult(result)) throw Error('result is incremental');
assertSome(result.data);
const testData: any = result.data['test'];
expect(testData.field1).toBe('field1');
expect(testData.field2).toBe('field2');
});

test('renaming with static arguments works', async () => {
const schema = makeExecutableSchema({
typeDefs: /* GraphQL */ `
input InputObject {
field1: String
field2: String
}
type OutputObject {
field1: String
field2: String
}
type Query {
test(argument: InputObject): OutputObject
}
`,
resolvers: {
Query: {
test: (_root, args) => {
return args.argument;
},
},
},
});

const transformedSchema = wrapSchema({
schema,
transforms: [
new RenameInputObjectFields((typeName, fieldName) => {
if (typeName === 'InputObject' && fieldName === 'field2') {
return 'field3';
}
}),
new RenameInputObjectFields((typeName, fieldName) => {
if (typeName === 'InputObject' && fieldName === 'field1') {
return 'field0';
}
}),
],
});

Expand Down

0 comments on commit 0300735

Please sign in to comment.