Thin MongoDB ODM built for Standard Schema
mongodb
zod
deno
1import { assert, assertExists } from "@std/assert";
2import { ObjectId } from "mongodb";
3import {
4 cleanupCollection,
5 createUserModel,
6 setupTestDb,
7 teardownTestDb,
8 type UserInsert,
9 type userSchema,
10} from "./utils.ts";
11import type { Model } from "../mod.ts";
12
13let UserModel: Model<typeof userSchema>;
14
15Deno.test.beforeAll(async () => {
16 await setupTestDb();
17 UserModel = createUserModel();
18});
19
20Deno.test.beforeEach(async () => {
21 await cleanupCollection(UserModel);
22});
23
24Deno.test.afterAll(async () => {
25 await teardownTestDb();
26});
27
28Deno.test({
29 name: "Features: Default Values - should handle default createdAt",
30 async fn() {
31
32 const newUser: UserInsert = {
33 name: "Default Test User",
34 email: "default@example.com",
35 // No createdAt provided - should use default
36 };
37
38 const insertResult = await UserModel.insertOne(newUser);
39 assertExists(insertResult.insertedId);
40
41 const foundUser = await UserModel.findOne({
42 _id: new ObjectId(insertResult.insertedId),
43 });
44
45 assertExists(foundUser);
46 assertExists(foundUser.createdAt);
47 assert(foundUser.createdAt instanceof Date);
48 },
49 sanitizeResources: false,
50 sanitizeOps: false,
51});
52
53