import { ObjectId } from "mongodb"; import { buildSimpleQuery, buildDateRangeFilter, } from "../subscriptions.getters.utils"; import { SimpleSubscriptionFilter } from "../subscriptions.types"; describe("subscriptions.getters.utils", () => { describe("buildSimpleQuery", () => { it("returns empty query when filter is empty", () => { const filter: SimpleSubscriptionFilter = {}; const result = buildSimpleQuery(filter); expect(result).toEqual({}); }); it("converts _id string to ObjectId", () => { const id = "507f1f77bcf86cd799439011"; const filter: SimpleSubscriptionFilter = { _id: id }; const result = buildSimpleQuery(filter); expect(result._id).toBeInstanceOf(ObjectId); expect((result._id as ObjectId).toHexString()).toBe(id); }); it("includes valid simple fields", () => { const filter: SimpleSubscriptionFilter = { clientId: "abc", isActive: true, }; const result = buildSimpleQuery(filter); expect(result).toEqual({ clientId: "abc", isActive: true }); }); }); describe("buildDateRangeFilter", () => { it("returns a mongo date range filter", () => { const from = new Date("2023-01-01"); const to = new Date("2023-01-02"); const result = buildDateRangeFilter(from, to); expect(result).toEqual({ $gte: from, $lt: to, }); }); }); });