mirror of
https://github.com/grafana/grafana.git
synced 2025-02-14 17:43:35 -06:00
* change backticks to quotes * add unescaping to `addFilterAsLabelFilter` * fix removal of wrong quotes * change unescape order
45 lines
1.7 KiB
TypeScript
45 lines
1.7 KiB
TypeScript
import { escapeLabelValueInExactSelector, isBytesString, unescapeLabelValue } from './languageUtils';
|
|
|
|
describe('isBytesString', () => {
|
|
it('correctly matches bytes string with integers', () => {
|
|
expect(isBytesString('500b')).toBe(true);
|
|
expect(isBytesString('2TB')).toBe(true);
|
|
});
|
|
it('correctly matches bytes string with float', () => {
|
|
expect(isBytesString('500.4kib')).toBe(true);
|
|
expect(isBytesString('10.4654Mib')).toBe(true);
|
|
});
|
|
it('does not match integer without unit', () => {
|
|
expect(isBytesString('500')).toBe(false);
|
|
expect(isBytesString('10')).toBe(false);
|
|
});
|
|
it('does not match float without unit', () => {
|
|
expect(isBytesString('50.047')).toBe(false);
|
|
expect(isBytesString('1.234')).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('escapeLabelValueInExactSelector', () => {
|
|
it.each`
|
|
value | escapedValue
|
|
${'nothing to escape'} | ${'nothing to escape'}
|
|
${'escape quote: "'} | ${'escape quote: \\"'}
|
|
${'escape newline: \nend'} | ${'escape newline: \\nend'}
|
|
${'escape slash: \\'} | ${'escape slash: \\\\'}
|
|
`('when called with $value', ({ value, escapedValue }) => {
|
|
expect(escapeLabelValueInExactSelector(value)).toEqual(escapedValue);
|
|
});
|
|
});
|
|
|
|
describe('unescapeLabelValueInExactSelector', () => {
|
|
it.each`
|
|
value | unescapedValue
|
|
${'nothing to unescape'} | ${'nothing to unescape'}
|
|
${'escape quote: \\"'} | ${'escape quote: "'}
|
|
${'escape newline: \\nend'} | ${'escape newline: \nend'}
|
|
${'escape slash: \\\\'} | ${'escape slash: \\'}
|
|
`('when called with $value', ({ value, unescapedValue }) => {
|
|
expect(unescapeLabelValue(value)).toEqual(unescapedValue);
|
|
});
|
|
});
|