mirror of
https://github.com/strapi/strapi.git
synced 2025-11-01 18:33:55 +00:00
add test for escapeQuery()
Signed-off-by: Pierre Noël <petersg83@gmail.com>
This commit is contained in:
parent
7c837cde6c
commit
e0e561e6d0
25
packages/strapi-utils/lib/__tests__/stringFormatting.test.js
Normal file
25
packages/strapi-utils/lib/__tests__/stringFormatting.test.js
Normal file
@ -0,0 +1,25 @@
|
||||
const { escapeQuery } = require('../stringFormatting');
|
||||
|
||||
describe('Escape Query', () => {
|
||||
const testData = [
|
||||
// [query, charsToEscape, escapeChar, expectedResult]
|
||||
['123', '[%\\', '\\', '123'],
|
||||
['12%3', '[%\\', '\\', '12\\%3'],
|
||||
['1[2%3', '[%\\', '\\', '1\\[2\\%3'],
|
||||
['1\\23', '[%\\', '\\', '1\\\\23'],
|
||||
['123\\', '[%\\', '\\', '123\\\\'],
|
||||
['\\', '[%\\', '\\', '\\\\'],
|
||||
['123', '[%\\', '+', '123'],
|
||||
['12%3', '[%\\', '+', '12+%3'],
|
||||
['1[2%3', '[%\\', '+', '1+[2+%3'],
|
||||
['1\\23', '[%\\', '+', '1+\\23'],
|
||||
];
|
||||
|
||||
test.each(testData)(
|
||||
'Escaping %s from %s with %s',
|
||||
(query, charsToEscape, escapeChar, expectedResult) => {
|
||||
const result = escapeQuery(query, charsToEscape, escapeChar);
|
||||
expect(result).toEqual(expectedResult);
|
||||
}
|
||||
);
|
||||
});
|
||||
@ -6,13 +6,13 @@ const nameToSlug = name => slugify(name, { separator: '-' });
|
||||
|
||||
const nameToCollectionName = name => slugify(name, { separator: '_' });
|
||||
|
||||
const escapeQuery = (query, charsToEscape, espaceChar = '\\') => {
|
||||
const escapeQuery = (query, charsToEscape, escapeChar = '\\') => {
|
||||
return query
|
||||
.split('')
|
||||
.reduce(
|
||||
(escapedQuery, char) =>
|
||||
charsToEscape.includes(char)
|
||||
? `${escapedQuery}${espaceChar}${char}`
|
||||
? `${escapedQuery}${escapeChar}${char}`
|
||||
: `${escapedQuery}${char}`,
|
||||
''
|
||||
);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user