fix(filters): make sure the same filter attribute is transformed in all instances
Resolves https://community.vikunja.io/t/filter-setting-s/1791/13
This commit is contained in:
parent
30c1a46ed4
commit
1ebb551864
@ -117,6 +117,16 @@ describe('Filter Transformation', () => {
|
|||||||
|
|
||||||
expect(transformed).toBe('project = 1 && labels = 2')
|
expect(transformed).toBe('project = 1 && labels = 2')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should transform the same attribute multiple times', () => {
|
||||||
|
const transformed = transformFilterStringForApi(
|
||||||
|
'dueDate = now/d || dueDate > now/w+1w',
|
||||||
|
nullTitleToIdResolver,
|
||||||
|
nullTitleToIdResolver,
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(transformed).toBe('due_date = now/d || due_date > now/w+1w')
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('To API', () => {
|
describe('To API', () => {
|
||||||
@ -198,5 +208,15 @@ describe('Filter Transformation', () => {
|
|||||||
|
|
||||||
expect(transformed).toBe('project in lorem, ipsum')
|
expect(transformed).toBe('project in lorem, ipsum')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should transform the same attribute multiple times', () => {
|
||||||
|
const transformed = transformFilterStringFromApi(
|
||||||
|
'due_date = now/d || due_date > now/w+1w',
|
||||||
|
nullIdToTitleResolver,
|
||||||
|
nullIdToTitleResolver,
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(transformed).toBe('dueDate = now/d || dueDate > now/w+1w')
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -127,7 +127,7 @@ export function transformFilterStringForApi(
|
|||||||
|
|
||||||
// Transform all attributes to snake case
|
// Transform all attributes to snake case
|
||||||
AVAILABLE_FILTER_FIELDS.forEach(f => {
|
AVAILABLE_FILTER_FIELDS.forEach(f => {
|
||||||
filter = filter.replace(f, snakeCase(f))
|
filter = filter.replaceAll(f, snakeCase(f))
|
||||||
})
|
})
|
||||||
|
|
||||||
return filter
|
return filter
|
||||||
@ -145,7 +145,7 @@ export function transformFilterStringFromApi(
|
|||||||
|
|
||||||
// Transform all attributes from snake case
|
// Transform all attributes from snake case
|
||||||
AVAILABLE_FILTER_FIELDS.forEach(f => {
|
AVAILABLE_FILTER_FIELDS.forEach(f => {
|
||||||
filter = filter.replace(snakeCase(f), f)
|
filter = filter.replaceAll(snakeCase(f), f)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Transform labels to their titles
|
// Transform labels to their titles
|
||||||
|
Loading…
x
Reference in New Issue
Block a user