transform input types also on user mutations (#6934)

This commit is contained in:
Antoine Cormouls
2020-10-09 17:40:30 +02:00
committed by GitHub
parent 84896dbeec
commit 5693470101
3 changed files with 50 additions and 3 deletions

3
package-lock.json generated
View File

@@ -5248,7 +5248,8 @@
"crypto-js": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz",
"integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg=="
"integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==",
"optional": true
},
"css-select": {
"version": "1.2.0",

View File

@@ -7235,7 +7235,9 @@ describe('ParseGraphQLServer', () => {
const clientMutationId = uuidv4();
const userSchema = new Parse.Schema('_User');
userSchema.addString('someField');
userSchema.addPointer('aPointer', '_User');
await userSchema.update();
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
const result = await apolloClient.mutate({
mutation: gql`
@@ -7246,6 +7248,10 @@ describe('ParseGraphQLServer', () => {
sessionToken
user {
someField
aPointer {
id
username
}
}
}
}
@@ -7257,6 +7263,13 @@ describe('ParseGraphQLServer', () => {
fields: {
username: 'user1',
password: 'user1',
aPointer: {
createAndLink: {
username: 'user2',
password: 'user2',
someField: 'someValue2',
},
},
someField: 'someValue',
},
},
@@ -7266,6 +7279,10 @@ describe('ParseGraphQLServer', () => {
expect(result.data.signUp.clientMutationId).toEqual(clientMutationId);
expect(result.data.signUp.viewer.sessionToken).toBeDefined();
expect(result.data.signUp.viewer.user.someField).toEqual('someValue');
expect(result.data.signUp.viewer.user.aPointer.id).toBeDefined();
expect(result.data.signUp.viewer.user.aPointer.username).toEqual(
'user2'
);
expect(typeof result.data.signUp.viewer.sessionToken).toBe('string');
});
@@ -7282,6 +7299,7 @@ describe('ParseGraphQLServer', () => {
});
userSchema.addString('someField');
userSchema.addPointer('aPointer', '_User');
await userSchema.update();
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
const result = await apolloClient.mutate({
@@ -7293,6 +7311,10 @@ describe('ParseGraphQLServer', () => {
sessionToken
user {
someField
aPointer {
id
username
}
}
}
}
@@ -7309,6 +7331,13 @@ describe('ParseGraphQLServer', () => {
},
fields: {
someField: 'someValue',
aPointer: {
createAndLink: {
username: 'user2',
password: 'user2',
someField: 'someValue2',
},
},
},
},
},
@@ -7324,6 +7353,10 @@ describe('ParseGraphQLServer', () => {
expect(typeof result.data.logInWith.viewer.sessionToken).toBe(
'string'
);
expect(result.data.logInWith.viewer.user.aPointer.id).toBeDefined();
expect(result.data.logInWith.viewer.user.aPointer.username).toEqual(
'user2'
);
});
it('should log the user in', async () => {

View File

@@ -9,6 +9,7 @@ import UsersRouter from '../../Routers/UsersRouter';
import * as objectsMutations from '../helpers/objectsMutations';
import { OBJECT } from './defaultGraphQLTypes';
import { getUserFromSessionToken } from './usersQueries';
import { transformTypes } from '../transformers/mutation';
const usersRouter = new UsersRouter();
@@ -41,9 +42,15 @@ const load = parseGraphQLSchema => {
const { fields } = args;
const { config, auth, info } = context;
const parseFields = await transformTypes('create', fields, {
className: '_User',
parseGraphQLSchema,
req: { config, auth, info },
});
const { sessionToken, objectId } = await objectsMutations.createObject(
'_User',
fields,
parseFields,
config,
auth,
info
@@ -119,9 +126,15 @@ const load = parseGraphQLSchema => {
const { fields, authData } = args;
const { config, auth, info } = context;
const parseFields = await transformTypes('create', fields, {
className: '_User',
parseGraphQLSchema,
req: { config, auth, info },
});
const { sessionToken, objectId } = await objectsMutations.createObject(
'_User',
{ ...fields, authData },
{ ...parseFields, authData },
config,
auth,
info