remove protobuf validation
This commit is contained in:
parent
4b94a8ecf0
commit
6990dde183
3 changed files with 2 additions and 88 deletions
|
@ -55,7 +55,7 @@ const Form: React.FC = () => {
|
||||||
yup.object().shape({
|
yup.object().shape({
|
||||||
newSchema:
|
newSchema:
|
||||||
schema?.schemaType === SchemaType.PROTOBUF
|
schema?.schemaType === SchemaType.PROTOBUF
|
||||||
? yup.string().required().isSchema('Schema syntax is not valid')
|
? yup.string().required()
|
||||||
: yup.string().required().isJsonObject('Schema syntax is not valid'),
|
: yup.string().required().isJsonObject('Schema syntax is not valid'),
|
||||||
});
|
});
|
||||||
const methods = useForm<NewSchemaSubjectRaw>({
|
const methods = useForm<NewSchemaSubjectRaw>({
|
||||||
|
|
|
@ -1,39 +1,5 @@
|
||||||
import { isValidSchema, isValidJsonObject } from 'lib/yupExtended';
|
import { isValidJsonObject } from 'lib/yupExtended';
|
||||||
|
|
||||||
const invalidEnum = `
|
|
||||||
ennum SchemType {
|
|
||||||
AVRO = 0;
|
|
||||||
JSON = 1;
|
|
||||||
PROTOBUF = 3;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
const validEnum = `
|
|
||||||
enum SchemType {
|
|
||||||
AVRO = 0;
|
|
||||||
JSON = 1;
|
|
||||||
PROTOBUF = 3;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
const invalidSchema = `
|
|
||||||
ssssyntax = "proto3";
|
|
||||||
package com.provectus;
|
|
||||||
|
|
||||||
message TestProtoRecord {
|
|
||||||
string f1 = 1;
|
|
||||||
int32 f2 = 2;
|
|
||||||
int32 f6 = 3;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
const validSchema = `
|
|
||||||
syntax = "proto3";
|
|
||||||
package com.provectus;
|
|
||||||
|
|
||||||
message TestProtoRecord {
|
|
||||||
string f1 = 1;
|
|
||||||
int32 f2 = 2;
|
|
||||||
int32 f6 = 3;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
describe('yup extended', () => {
|
describe('yup extended', () => {
|
||||||
describe('isValidJsonObject', () => {
|
describe('isValidJsonObject', () => {
|
||||||
it('returns false for no value', () => {
|
it('returns false for no value', () => {
|
||||||
|
@ -55,27 +21,4 @@ describe('yup extended', () => {
|
||||||
expect(isValidJsonObject('{ "foo": "bar" }')).toBeTruthy();
|
expect(isValidJsonObject('{ "foo": "bar" }')).toBeTruthy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('isValidSchema', () => {
|
|
||||||
it('returns false for invalid enum', () => {
|
|
||||||
expect(isValidSchema(invalidEnum)).toBeFalsy();
|
|
||||||
});
|
|
||||||
it('returns false for invalid schema', () => {
|
|
||||||
expect(isValidSchema(invalidSchema)).toBeFalsy();
|
|
||||||
});
|
|
||||||
it('returns false for no value', () => {
|
|
||||||
expect(isValidSchema()).toBeFalsy();
|
|
||||||
});
|
|
||||||
it('returns true should trim value', () => {
|
|
||||||
expect(
|
|
||||||
isValidSchema(` enum SchemType {AVRO = 0; PROTOBUF = 3;} `)
|
|
||||||
).toBeTruthy();
|
|
||||||
});
|
|
||||||
it('returns true for valid enum', () => {
|
|
||||||
expect(isValidSchema(validEnum)).toBeTruthy();
|
|
||||||
});
|
|
||||||
it('returns true for valid schema', () => {
|
|
||||||
expect(isValidSchema(validSchema)).toBeTruthy();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -10,7 +10,6 @@ declare module 'yup' {
|
||||||
TFlags extends yup.Flags = ''
|
TFlags extends yup.Flags = ''
|
||||||
> extends yup.Schema<TType, TContext, TDefault, TFlags> {
|
> extends yup.Schema<TType, TContext, TDefault, TFlags> {
|
||||||
isJsonObject(message?: string): StringSchema<TType, TContext>;
|
isJsonObject(message?: string): StringSchema<TType, TContext>;
|
||||||
isSchema(message?: string): StringSchema<TType, TContext>;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,33 +39,6 @@ const isJsonObject = (message?: string) => {
|
||||||
isValidJsonObject
|
isValidJsonObject
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const isValidSchema = (value?: string) => {
|
|
||||||
try {
|
|
||||||
if (!value) return false;
|
|
||||||
const trimmedValue = value.trim();
|
|
||||||
if (
|
|
||||||
(trimmedValue.indexOf('syntax') === 0 ||
|
|
||||||
trimmedValue.indexOf('enum') === 0) &&
|
|
||||||
trimmedValue.lastIndexOf('}') === trimmedValue.length - 1
|
|
||||||
) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
// do nothing
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
const isSchema = (message?: string) => {
|
|
||||||
return yup.string().test(
|
|
||||||
'isSchema',
|
|
||||||
// eslint-disable-next-line no-template-curly-in-string
|
|
||||||
message || '${path} is not valid schema',
|
|
||||||
isValidSchema
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* due to yup rerunning all the object validiation during any render,
|
* due to yup rerunning all the object validiation during any render,
|
||||||
* it makes sense to cache the async results
|
* it makes sense to cache the async results
|
||||||
|
@ -89,7 +61,6 @@ export function cacheTest(
|
||||||
}
|
}
|
||||||
|
|
||||||
yup.addMethod(yup.StringSchema, 'isJsonObject', isJsonObject);
|
yup.addMethod(yup.StringSchema, 'isJsonObject', isJsonObject);
|
||||||
yup.addMethod(yup.StringSchema, 'isSchema', isSchema);
|
|
||||||
|
|
||||||
export const topicFormValidationSchema = yup.object().shape({
|
export const topicFormValidationSchema = yup.object().shape({
|
||||||
name: yup
|
name: yup
|
||||||
|
|
Loading…
Add table
Reference in a new issue