diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-01-12 20:03:47 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2025-01-12 20:03:47 +0000 |
| commit | 9fd26b472b18924ab11afcebace90329b0fe3abf (patch) | |
| tree | 04d2a8f8603978c27611574d663dfc58b3f285b0 /packages/shared/searchQueryParser.test.ts | |
| parent | c5298cf4b43795c0c261922ef0ad0f20245be4d5 (diff) | |
| download | karakeep-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.ts | 55 |
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", () => { |
