@appello/services
Version:
Services package with api / graphql
53 lines (52 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const graphql_1 = require("graphql");
const consts_1 = require("../../consts");
const createProcessGqlErrorResponse_1 = require("./createProcessGqlErrorResponse");
test('is working correctly', async () => {
let nonFieldError;
let unhandledFieldErrors;
let unknownError;
const handledErrors = {};
const processGqlErrorResponse = (0, createProcessGqlErrorResponse_1.createProcessGqlErrorResponse)({
onNonFieldError: message => {
nonFieldError = message;
},
onUnhandledFieldErrors: errors => {
unhandledFieldErrors = errors;
},
onUnknownError: message => {
unknownError = message;
},
});
const nameErrorMessage = 'Name is required';
const emailErrorMessage = 'Email is required';
const gqlError = {
graphQLErrors: [
new graphql_1.GraphQLError('Failed', {
extensions: {
code: consts_1.GqlErrorCodeEnum.UNPROCESSABLE_ENTITY,
explain: {
name: nameErrorMessage,
user: {
email: emailErrorMessage,
},
},
},
}),
],
};
processGqlErrorResponse(gqlError, {
fields: ['name', 'user.email'],
setFieldError: (name, message) => {
handledErrors[name] = message;
},
});
expect(handledErrors).toMatchObject({
name: nameErrorMessage,
'user.email': emailErrorMessage,
});
expect(nonFieldError).toBeUndefined();
expect(unhandledFieldErrors).toBeUndefined();
expect(unknownError).toBeUndefined();
});