GraphQL classConfig query alias (#6257)
* adds alias option * added tests
This commit is contained in:
committed by
Antonio Davi Macedo Coelho de Castro
parent
abcc5fdb31
commit
188f033330
@@ -564,4 +564,102 @@ describe('ParseGraphQLSchema', () => {
|
||||
).toEqual(Object.keys(mutations2).sort());
|
||||
});
|
||||
});
|
||||
|
||||
describe('query alias', () => {
|
||||
it('Should be able to define alias for find query', async () => {
|
||||
const parseGraphQLSchema = new ParseGraphQLSchema({
|
||||
databaseController,
|
||||
parseGraphQLController,
|
||||
log: defaultLogger,
|
||||
appId,
|
||||
});
|
||||
|
||||
await parseGraphQLSchema.parseGraphQLController.updateGraphQLConfig({
|
||||
classConfigs: [
|
||||
{
|
||||
className: 'Data',
|
||||
query: {
|
||||
get: true,
|
||||
getAlias: 'precious_data',
|
||||
find: true,
|
||||
findAlias: 'data_results',
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
const data = new Parse.Object('Data');
|
||||
|
||||
await data.save();
|
||||
|
||||
await parseGraphQLSchema.databaseController.schemaCache.clear();
|
||||
await parseGraphQLSchema.load();
|
||||
|
||||
const queries1 = parseGraphQLSchema.graphQLQueries;
|
||||
|
||||
expect(Object.keys(queries1)).toContain('data_results');
|
||||
expect(Object.keys(queries1)).toContain('precious_data');
|
||||
});
|
||||
|
||||
it('should fail if query alias is not a string', async () => {
|
||||
const parseGraphQLSchema = new ParseGraphQLSchema({
|
||||
databaseController,
|
||||
parseGraphQLController,
|
||||
log: defaultLogger,
|
||||
appId,
|
||||
});
|
||||
|
||||
const classConfigsBoolFindAlias = {
|
||||
classConfigs: [
|
||||
{
|
||||
className: 'Data',
|
||||
query: {
|
||||
get: true,
|
||||
getAlias: 'valid',
|
||||
find: true,
|
||||
findAlias: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const classConfigsNumberGetAlias = {
|
||||
classConfigs: [
|
||||
{
|
||||
className: 'Pants',
|
||||
query: {
|
||||
get: true,
|
||||
getAlias: 1,
|
||||
find: true,
|
||||
findAlias: 'valid',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
let className;
|
||||
|
||||
className = classConfigsBoolFindAlias.classConfigs[0].className;
|
||||
try {
|
||||
await parseGraphQLSchema.parseGraphQLController.updateGraphQLConfig(
|
||||
classConfigsBoolFindAlias
|
||||
);
|
||||
} catch (e) {
|
||||
expect(e).toMatch(
|
||||
`Invalid graphQLConfig: classConfig:${className} is invalid because "query.findAlias" must be a string`
|
||||
);
|
||||
}
|
||||
|
||||
className = classConfigsNumberGetAlias.classConfigs[0].className;
|
||||
try {
|
||||
await parseGraphQLSchema.parseGraphQLController.updateGraphQLConfig(
|
||||
classConfigsNumberGetAlias
|
||||
);
|
||||
} catch (e) {
|
||||
expect(e).toMatch(
|
||||
`Invalid graphQLConfig: classConfig:${className} is invalid because "query.getAlias" must be a string`
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user