import { buildDeleteOp, buildInsertOp, buildSetOp, buildUpsertOp, } from "../bulkWrite.ops"; interface TestDoc { _id: string; key: string; value: string; } describe("buildSetOp", () => { it("returns a plain $set updateOne with no upsert", () => { const op = buildSetOp({ key: "k1" }, { value: "v2" }); expect(op).toEqual({ updateOne: { filter: { key: "k1" }, update: { $set: { value: "v2" } } }, }); }); }); describe("buildUpsertOp", () => { it("returns $set + $setOnInsert + upsert:true", () => { const op = buildUpsertOp( { key: "k1" }, { value: "v1" }, { key: "k1" }, ); expect(op).toEqual({ updateOne: { filter: { key: "k1" }, update: { $set: { value: "v1" }, $setOnInsert: { key: "k1" } }, upsert: true, }, }); }); it("defaults $setOnInsert to an empty object when omitted", () => { const op = buildUpsertOp({ key: "k1" }, { value: "v1" }); expect(op).toEqual({ updateOne: { filter: { key: "k1" }, update: { $set: { value: "v1" }, $setOnInsert: {} }, upsert: true, }, }); }); }); describe("buildInsertOp", () => { it("returns an insertOne with the given document", () => { const op = buildInsertOp({ _id: "1", key: "k1", value: "v1" }); expect(op).toEqual({ insertOne: { document: { _id: "1", key: "k1", value: "v1" } }, }); }); }); describe("buildDeleteOp", () => { it("returns a deleteOne matching filter", () => { const op = buildDeleteOp({ key: "k1" }); expect(op).toEqual({ deleteOne: { filter: { key: "k1" } } }); }); });