aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/searchQueryParser.test.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-01-12 20:03:47 +0000
committerMohamed Bassem <me@mbassem.com>2025-01-12 20:03:47 +0000
commit9fd26b472b18924ab11afcebace90329b0fe3abf (patch)
tree04d2a8f8603978c27611574d663dfc58b3f285b0 /packages/shared/searchQueryParser.test.ts
parentc5298cf4b43795c0c261922ef0ad0f20245be4d5 (diff)
downloadkarakeep-9fd26b472b18924ab11afcebace90329b0fe3abf.tar.zst
feat: Add ability to filter by bookmark type
Diffstat (limited to 'packages/shared/searchQueryParser.test.ts')
-rw-r--r--packages/shared/searchQueryParser.test.ts55
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/shared/searchQueryParser.test.ts b/packages/shared/searchQueryParser.test.ts
index 5af7ca2f..7430d58f 100644
--- a/packages/shared/searchQueryParser.test.ts
+++ b/packages/shared/searchQueryParser.test.ts
@@ -1,6 +1,7 @@
import { describe, expect, test } from "vitest";
import { parseSearchQuery } from "./searchQueryParser";
+import { BookmarkTypes } from "./types/bookmarks";
describe("Search Query Parser", () => {
test("simple is queries", () => {
@@ -68,6 +69,60 @@ describe("Search Query Parser", () => {
inList: false,
},
});
+ expect(parseSearchQuery("is:link")).toEqual({
+ result: "full",
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.LINK,
+ inverse: false,
+ },
+ });
+ expect(parseSearchQuery("-is:link")).toEqual({
+ result: "full",
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.LINK,
+ inverse: true,
+ },
+ });
+ expect(parseSearchQuery("is:text")).toEqual({
+ result: "full",
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.TEXT,
+ inverse: false,
+ },
+ });
+ expect(parseSearchQuery("-is:text")).toEqual({
+ result: "full",
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.TEXT,
+ inverse: true,
+ },
+ });
+ expect(parseSearchQuery("is:media")).toEqual({
+ result: "full",
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.ASSET,
+ inverse: false,
+ },
+ });
+ expect(parseSearchQuery("-is:media")).toEqual({
+ result: "full",
+ text: "",
+ matcher: {
+ type: "type",
+ typeName: BookmarkTypes.ASSET,
+ inverse: true,
+ },
+ });
});
test("simple string queries", () => {