Skip to content

Commit

Permalink
Handle required fields (#6271)
Browse files Browse the repository at this point in the history
  • Loading branch information
Moumouls authored and davimacedo committed Dec 12, 2019
1 parent 4f1d3b0 commit e0e06ef
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
38 changes: 38 additions & 0 deletions spec/ParseGraphQLServer.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -1850,6 +1850,44 @@ describe('ParseGraphQLServer', () => {
expect(updatedSuperCar).toBeTruthy();
});

it('should handle required fields from the Parse class', async () => {
const schemaController = await parseServer.config.databaseController.loadSchema();
await schemaController.addClassIfNotExists('SuperCar', {
engine: { type: 'String', required: true },
doors: { type: 'Number', required: true },
price: { type: 'String' },
mileage: { type: 'Number' },
});

await resetGraphQLCache();

const {
data: { __type },
} = await apolloClient.query({
query: gql`
query requiredFields {
__type(name: "CreateSuperCarFieldsInput") {
inputFields {
name
type {
kind
}
}
}
}
`,
});
expect(
__type.inputFields.find(o => o.name === 'price').type.kind
).toEqual('SCALAR');
expect(
__type.inputFields.find(o => o.name === 'engine').type.kind
).toEqual('NON_NULL');
expect(
__type.inputFields.find(o => o.name === 'doors').type.kind
).toEqual('NON_NULL');
});

it('should only allow the supplied output fields for a class', async () => {
const schemaController = await parseServer.config.databaseController.loadSchema();

Expand Down
5 changes: 3 additions & 2 deletions src/GraphQL/loaders/parseClassTypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,9 @@ const load = (
[field]: {
description: `This is the object ${field}.`,
type:
className === '_User' &&
(field === 'username' || field === 'password')
(className === '_User' &&
(field === 'username' || field === 'password')) ||
parseClass.fields[field].required
? new GraphQLNonNull(type)
: type,
},
Expand Down

0 comments on commit e0e06ef

Please sign in to comment.