aboutsummaryrefslogtreecommitdiffstats
path: root/packages/trpc/lib/__tests__/search.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/trpc/lib/__tests__/search.test.ts')
-rw-r--r--packages/trpc/lib/__tests__/search.test.ts55
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/trpc/lib/__tests__/search.test.ts b/packages/trpc/lib/__tests__/search.test.ts
index ee8bfb60..d39e27a6 100644
--- a/packages/trpc/lib/__tests__/search.test.ts
+++ b/packages/trpc/lib/__tests__/search.test.ts
@@ -240,6 +240,61 @@ describe("getBookmarkIdsFromMatcher", () => {
expect(result.sort()).toEqual(["b2", "b3", "b4", "b5"]);
});
+ it("should handle listName matcher when multiple lists share the same name", async () => {
+ await mockCtx.db.insert(bookmarkLists).values({
+ id: "l5",
+ userId: testUserId,
+ name: "list1",
+ icon: "🚀",
+ type: "manual",
+ });
+ await mockCtx.db.insert(bookmarksInLists).values({
+ bookmarkId: "b2",
+ listId: "l5",
+ });
+
+ const matcher: Matcher = {
+ type: "listName",
+ listName: "list1",
+ inverse: false,
+ };
+ const result = await getBookmarkIdsFromMatcher(mockCtx, matcher);
+ expect(result.sort()).toEqual(["b1", "b2", "b6"]);
+ });
+
+ it("should handle inverse listName matcher when multiple lists share the same name", async () => {
+ await mockCtx.db.insert(bookmarkLists).values({
+ id: "l5",
+ userId: testUserId,
+ name: "list1",
+ icon: "🚀",
+ type: "manual",
+ });
+ await mockCtx.db.insert(bookmarksInLists).values({
+ bookmarkId: "b2",
+ listId: "l5",
+ });
+
+ const matcher: Matcher = {
+ type: "listName",
+ listName: "list1",
+ inverse: true,
+ };
+ const result = await getBookmarkIdsFromMatcher(mockCtx, matcher);
+ expect(result.sort()).toEqual(["b3", "b4", "b5"]);
+ });
+
+ it("should return empty when inverse listName references a missing list", async () => {
+ const matcher: Matcher = {
+ type: "listName",
+ listName: "does-not-exist",
+ inverse: true,
+ };
+
+ const result = await getBookmarkIdsFromMatcher(mockCtx, matcher);
+ expect(result).toEqual([]);
+ });
+
it("should handle archived matcher", async () => {
const matcher: Matcher = { type: "archived", archived: true };
const result = await getBookmarkIdsFromMatcher(mockCtx, matcher);