mirror of
https://github.com/zadam/trilium.git
synced 2026-02-27 00:53:35 +01:00
fix orderby in combination with parentheses / increased expression level
This commit is contained in:
parent
5da9963f31
commit
e29b238161
@ -234,6 +234,32 @@ describe("Parser", () => {
|
||||
expect(rootExp.limit).toBe(2);
|
||||
expect(rootExp.subExpression).toBeInstanceOf(AndExp);
|
||||
});
|
||||
|
||||
describe("orderBy with level > 0", () => {
|
||||
it("and grouping parentheses should parse without error", () => {
|
||||
const searchContext = new SearchContext();
|
||||
const rootExp = parseInternal(
|
||||
{
|
||||
fulltextTokens: [],
|
||||
expressionTokens: tokens(["#foo", "and" , ["#bar", "or", "#baz", ], "orderby", "#priority", "desc"]),
|
||||
searchContext
|
||||
}
|
||||
);
|
||||
expect(searchContext.error).toBeNull();
|
||||
});
|
||||
|
||||
it("and not() should parse without error", () => {
|
||||
const searchContext = new SearchContext();
|
||||
const rootExp = parseInternal(
|
||||
{
|
||||
fulltextTokens: [],
|
||||
expressionTokens: tokens(["#foo", "and" , "not", [ "#bar", "=", "baz" ], "orderby", "#priority", "desc"]) ,
|
||||
searchContext
|
||||
}
|
||||
);
|
||||
expect(searchContext.error).toBeNull();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("Invalid expressions", () => {
|
||||
|
||||
@ -361,7 +361,7 @@ function getExpression(tokens: TokenData[], searchContext: SearchContext, level
|
||||
|
||||
for (i = 0; i < tokens.length; i++) {
|
||||
if (Array.isArray(tokens[i])) {
|
||||
const expression = getExpression(tokens[i] as unknown as TokenData[], searchContext, level++);
|
||||
const expression = getExpression(tokens[i] as unknown as TokenData[], searchContext, level + 1);
|
||||
if (expression) {
|
||||
expressions.push(expression);
|
||||
}
|
||||
@ -402,7 +402,7 @@ function getExpression(tokens: TokenData[], searchContext: SearchContext, level
|
||||
}
|
||||
|
||||
const tokenArray = tokens[i] as unknown as TokenData[];
|
||||
const expression = getExpression(tokenArray, searchContext, level++);
|
||||
const expression = getExpression(tokenArray, searchContext, level + 1);
|
||||
if (!expression) {
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user