mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
[Fleet] Fix required validation for multi text input field (#205768)
## Summary Fixes #196648 - ✅ add required validation to blank spaces value - ❓ when adding additional rows for path. It seems that the updated value is specially processed. **And this is why the required validation is not triggered when clicking to add a row.**  ## After fixup 
This commit is contained in:
parent
aff921700c
commit
74da51f917
2 changed files with 54 additions and 9 deletions
|
@ -872,6 +872,46 @@ describe('Fleet - validationHasErrors()', () => {
|
|||
});
|
||||
|
||||
describe('Fleet - validatePackagePolicyConfig', () => {
|
||||
describe('Multi Text', () => {
|
||||
it('should return required error message for empty string', () => {
|
||||
const res = validatePackagePolicyConfig(
|
||||
{
|
||||
type: 'text',
|
||||
value: [''],
|
||||
},
|
||||
{
|
||||
name: 'myvariable',
|
||||
type: 'text',
|
||||
multi: true,
|
||||
required: true,
|
||||
},
|
||||
'myvariable',
|
||||
load
|
||||
);
|
||||
|
||||
expect(res).toEqual(['myvariable is required']);
|
||||
});
|
||||
|
||||
it('should return required error message for blank spaces', () => {
|
||||
const res = validatePackagePolicyConfig(
|
||||
{
|
||||
type: 'text',
|
||||
value: ['value1', ' '],
|
||||
},
|
||||
{
|
||||
name: 'myvariable',
|
||||
type: 'text',
|
||||
multi: true,
|
||||
required: true,
|
||||
},
|
||||
'myvariable',
|
||||
load
|
||||
);
|
||||
|
||||
expect(res).toEqual(['myvariable is required']);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Integer', () => {
|
||||
it('should return an error message for invalid integer', () => {
|
||||
const res = validatePackagePolicyConfig(
|
||||
|
|
|
@ -291,15 +291,20 @@ export const validatePackagePolicyConfig = (
|
|||
);
|
||||
return errors;
|
||||
}
|
||||
if (varDef.required && Array.isArray(parsedValue) && parsedValue.length === 0) {
|
||||
errors.push(
|
||||
i18n.translate('xpack.fleet.packagePolicyValidation.requiredErrorMessage', {
|
||||
defaultMessage: '{fieldName} is required',
|
||||
values: {
|
||||
fieldName: varDef.title || varDef.name,
|
||||
},
|
||||
})
|
||||
);
|
||||
if (varDef.required && Array.isArray(parsedValue)) {
|
||||
const hasEmptyString =
|
||||
varDef.type === 'text' && parsedValue.some((item) => item.trim() === '');
|
||||
|
||||
if (hasEmptyString || parsedValue.length === 0) {
|
||||
errors.push(
|
||||
i18n.translate('xpack.fleet.packagePolicyValidation.requiredErrorMessage', {
|
||||
defaultMessage: '{fieldName} is required',
|
||||
values: {
|
||||
fieldName: varDef.title || varDef.name,
|
||||
},
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
if (varDef.type === 'text' && parsedValue) {
|
||||
const invalidStrings = parsedValue.filter((cand: any) => /^[*&]/.test(cand));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue