Chore: fix some codeql violations (#101958)
* fix some codeql violations * just check at start
This commit is contained in:
@@ -293,7 +293,7 @@ export function calculateInterval(range: TimeRange, resolution: number, lowLimit
|
||||
};
|
||||
}
|
||||
|
||||
const interval_regex = /(-?\d+(?:\.\d+)?)(ms|[Mwdhmsy])/;
|
||||
const interval_regex = /^(-?\d+(?:\.\d+)?)(ms|[Mwdhmsy])/;
|
||||
// histogram & trends
|
||||
const intervals_in_seconds: Record<string, number> = {
|
||||
y: 31536000,
|
||||
|
||||
@@ -47,7 +47,7 @@ export const getMatcherConfig = (
|
||||
if (byVariable && variable) {
|
||||
const stringOfNames = variable;
|
||||
|
||||
if (/\{.*\}/.test(stringOfNames)) {
|
||||
if (/^\{.*\}$/.test(stringOfNames)) {
|
||||
const namesFromString = stringOfNames.slice(1).slice(0, -1).split(',');
|
||||
return { id: FieldMatcherID.byNames, options: { names: namesFromString } };
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useDebounce } from 'react-use';
|
||||
|
||||
import { InlineField, Input } from '@grafana/ui';
|
||||
|
||||
import { validateInterval, validateIntervalRegex } from './validation';
|
||||
import { validateInterval } from './validation';
|
||||
|
||||
interface Props {
|
||||
value: string;
|
||||
@@ -28,14 +28,13 @@ interface FieldProps {
|
||||
}
|
||||
|
||||
export const IntervalInput = (props: Props) => {
|
||||
const validationRegex = props.validationRegex || validateIntervalRegex;
|
||||
const [intervalIsInvalid, setIntervalIsInvalid] = useState(() => {
|
||||
return props.value ? validateInterval(props.value, validationRegex) : false;
|
||||
return props.value ? validateInterval(props.value, props.validationRegex) : false;
|
||||
});
|
||||
|
||||
useDebounce(
|
||||
() => {
|
||||
setIntervalIsInvalid(validateInterval(props.value, validationRegex));
|
||||
setIntervalIsInvalid(validateInterval(props.value, props.validationRegex));
|
||||
},
|
||||
500,
|
||||
[props.value]
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
import { validateInterval, validateIntervalRegex } from './validation';
|
||||
import { validateInterval } from './validation';
|
||||
|
||||
describe('Validation', () => {
|
||||
it('should validate incorrect values correctly', () => {
|
||||
expect(validateInterval('-', validateIntervalRegex)).toBeTruthy();
|
||||
expect(validateInterval('1', validateIntervalRegex)).toBeTruthy();
|
||||
expect(validateInterval('test', validateIntervalRegex)).toBeTruthy();
|
||||
expect(validateInterval('1ds', validateIntervalRegex)).toBeTruthy();
|
||||
expect(validateInterval('10Ms', validateIntervalRegex)).toBeTruthy();
|
||||
expect(validateInterval('-9999999', validateIntervalRegex)).toBeTruthy();
|
||||
expect(validateInterval('-')).toBeTruthy();
|
||||
expect(validateInterval('1')).toBeTruthy();
|
||||
expect(validateInterval('test')).toBeTruthy();
|
||||
expect(validateInterval('1ds')).toBeTruthy();
|
||||
expect(validateInterval('10Ms')).toBeTruthy();
|
||||
expect(validateInterval('-9999999')).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should validate correct values correctly', () => {
|
||||
expect(validateInterval('1y', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('1M', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('1w', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('1d', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('2h', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('4m', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('8s', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('80ms', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('-80ms', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('1y')).toBeFalsy();
|
||||
expect(validateInterval('1M')).toBeFalsy();
|
||||
expect(validateInterval('1w')).toBeFalsy();
|
||||
expect(validateInterval('1d')).toBeFalsy();
|
||||
expect(validateInterval('2h')).toBeFalsy();
|
||||
expect(validateInterval('4m')).toBeFalsy();
|
||||
expect(validateInterval('8s')).toBeFalsy();
|
||||
expect(validateInterval('80ms')).toBeFalsy();
|
||||
expect(validateInterval('-80ms')).toBeFalsy();
|
||||
});
|
||||
|
||||
it('should not return error if no value provided', () => {
|
||||
expect(validateInterval('', validateIntervalRegex)).toBeFalsy();
|
||||
expect(validateInterval('')).toBeFalsy();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export const validateIntervalRegex = /^(-?\d+(?:\.\d+)?)(ms|[Mwdhmsy])$/;
|
||||
|
||||
export const validateInterval = (val: string, regex: RegExp) => {
|
||||
export const validateInterval = (val: string, regex = validateIntervalRegex) => {
|
||||
const matches = val.match(regex);
|
||||
return matches || !val ? false : true;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user