|
|
|
|
@ -87,14 +87,16 @@ describe("Lexer expression", () => {
|
|
|
|
|
.toEqual(["#label", "*=*", "text"]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("simple label operator with in quotes and without", () => {
|
|
|
|
|
it("simple label operator with in quotes", () => {
|
|
|
|
|
expect(lex("#label*=*'text'").expressionTokens)
|
|
|
|
|
.toEqual([
|
|
|
|
|
{token: "#label", inQuotes: false, startIndex: 0, endIndex: 5},
|
|
|
|
|
{token: "*=*", inQuotes: false, startIndex: 6, endIndex: 8},
|
|
|
|
|
{token: "text", inQuotes: true, startIndex: 10, endIndex: 13}
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("simple label operator with param without quotes", () => {
|
|
|
|
|
expect(lex("#label*=*text").expressionTokens)
|
|
|
|
|
.toEqual([
|
|
|
|
|
{token: "#label", inQuotes: false, startIndex: 0, endIndex: 5},
|
|
|
|
|
@ -103,6 +105,16 @@ describe("Lexer expression", () => {
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("simple label operator with empty string param", () => {
|
|
|
|
|
expect(lex("#label = ''").expressionTokens)
|
|
|
|
|
.toEqual([
|
|
|
|
|
{token: "#label", inQuotes: false, startIndex: 0, endIndex: 5},
|
|
|
|
|
{token: "=", inQuotes: false, startIndex: 7, endIndex: 7},
|
|
|
|
|
// weird case for empty strings which ends up with endIndex < startIndex :-(
|
|
|
|
|
{token: "", inQuotes: true, startIndex: 10, endIndex: 9}
|
|
|
|
|
]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("note. prefix also separates fulltext from expression", () => {
|
|
|
|
|
expect(lex(`hello fulltext note.labels.capital = Prague`).expressionTokens.map(t => t.token))
|
|
|
|
|
.toEqual(["note", ".", "labels", ".", "capital", "=", "prague"]);
|
|
|
|
|
|