Prometheus: Prevents validation of inputs when clicking in them without changing the value (#21059)

Fixes #21056
This commit is contained in:
Hugo Häggmark
2019-12-12 13:26:12 +01:00
committed by GitHub
parent e69ec6ca53
commit a187500c0e
2 changed files with 66 additions and 17 deletions

View File

@@ -1,4 +1,5 @@
import { getValueFromEventItem } from './PromSettings';
import { getValueFromEventItem, promSettingsValidationEvents } from './PromSettings';
import { EventsWithValidation } from '@grafana/ui';
describe('PromSettings', () => {
describe('getValueFromEventItem', () => {
@@ -25,4 +26,57 @@ describe('PromSettings', () => {
});
});
});
describe('promSettingsValidationEvents', () => {
const validationEvents = promSettingsValidationEvents;
it('should have one event handlers', () => {
expect(Object.keys(validationEvents).length).toEqual(1);
});
it('should have an onBlur handler', () => {
expect(validationEvents.hasOwnProperty(EventsWithValidation.onBlur)).toBe(true);
});
it('should have one rule', () => {
expect(validationEvents[EventsWithValidation.onBlur].length).toEqual(1);
});
describe('when calling the rule with an empty string', () => {
it('then it should return true', () => {
expect(validationEvents[EventsWithValidation.onBlur][0].rule('')).toBe(true);
});
});
it.each`
value | expected
${'1ms'} | ${true}
${'1M'} | ${true}
${'1w'} | ${true}
${'1d'} | ${true}
${'1h'} | ${true}
${'1m'} | ${true}
${'1s'} | ${true}
${'1y'} | ${true}
`(
"when calling the rule with correct formatted value: '$value' then result should be '$expected'",
({ value, expected }) => {
expect(validationEvents[EventsWithValidation.onBlur][0].rule(value)).toBe(expected);
}
);
it.each`
value | expected
${'1 ms'} | ${false}
${'1x'} | ${false}
${' '} | ${false}
${'w'} | ${false}
${'1.0s'} | ${false}
`(
"when calling the rule with incorrect formatted value: '$value' then result should be '$expected'",
({ value, expected }) => {
expect(validationEvents[EventsWithValidation.onBlur][0].rule(value)).toBe(expected);
}
);
});
});