Skip to main content
Module

x/fastro/test/collection_test.ts

Fast and simple web application framework for deno
Go to Latest
File
const { test } = Deno;import { assertEquals } from "../deps.ts";import { Collection } from "../mod.ts";
interface User { id?: number; name: string; address?: string;}
class UserCollection extends Collection<User> {}const db = new UserCollection("user");
test({ name: "CREATE DATABASE", async fn() { const r = await db.create({ id: 0, name: "agus" }); await db.create({ id: 1, name: "budi" }); await db.create({ id: 2, name: "john" }); await db.create({ id: 3, name: "ken", address: "cirebon" }); assertEquals(r, true); },});
test({ name: "FIND ALL DATABASE", async fn() { const r = await db.find({}); assertEquals(r.length, 4); },});
test({ name: "FIND ONE", async fn() { const r = await db.findOne({ id: 0 }); assertEquals(r.id, 0); },});
test({ name: "UPDATE", async fn() { const r = await db.update({ id: 0 }, { id: 0, name: "tom" }); assertEquals(r.name, "tom"); },});
test({ name: "DELETE", async fn() { const r = await db.delete({ id: 0 }); assertEquals(r.length, 3); },});
test({ name: "$GT", async fn() { const r = await db.find({ id: { $gt: 0 } }); assertEquals(r.length, 3); },});
test({ name: "$GTE", async fn() { const r = await db.find({ id: { $gte: 2 } }); assertEquals(r.length, 2); },});
test({ name: "$LT", async fn() { const r = await db.find({ id: { $lt: 2 } }); assertEquals(r.length, 1); },});
test({ name: "$LTE", async fn() { const r = await db.find({ id: { $lte: 2 } }); assertEquals(r.length, 2); },});
test({ name: "$IN", async fn() { const r = await db.find({ name: { $in: ["ken"] } }); assertEquals(r.length, 1); },});
test({ name: "$NIN", async fn() { const r = await db.find({ name: { $nin: ["ken"] } }); assertEquals(r.length, 2); },});
test({ name: "$NE", async fn() { const r = await db.find({ name: { $ne: "ken" } }); assertEquals(r.length, 2); },});
test({ name: "$EXISTS", async fn() { const r = await db.find({ address: { $exists: true } }); assertEquals(r.length, 1); },});
test({ name: "$REGEX", async fn() { const r = await db.find({ address: { $regex: /cirebon/ } }); assertEquals(r.length, 1); },});
test({ name: "$REGEX AND EXISTS", async fn() { const r = await db.find({ address: { $exists: true, $regex: /cirebon/ } }); assertEquals(r.length, 1); },});