UNPKG

json-file-database

Version:

Lightweight Database on NodeJS by JSON Files

86 lines (85 loc) 3.24 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = __importDefault(require("ava")); const src_1 = require("../src"); const shared_1 = require("./shared"); (0, ava_1.default)('db-init', (t) => { const db = (0, shared_1.connectDatabase)({ init: { objs: [{ id: 114514, name: 'Koji Tadokoro' }], }, }); const objs = db({ name: 'objs', primaryKey: 'id', }); t.true(objs.has(o => o.id === 123)); t.false(objs.has(o => o.id === 114514)); }); (0, ava_1.default)('no-save', (t) => __awaiter(void 0, void 0, void 0, function* () { let notSaved = true; const db = (0, shared_1.connectDatabase)({ onSaved() { notSaved = false; }, }); const objs = db({ name: 'objs', primaryKey: 'id', }); t.true(objs.has({ id: 123 })); t.log('Sleep 50ms to make sure the database is not saved.'); yield (0, shared_1.sleep)(50); t.true(notSaved); })); (0, ava_1.default)('save', (t) => __awaiter(void 0, void 0, void 0, function* () { let saved = false; const db = (0, shared_1.connectDatabase)({ onSaved() { saved = true; }, }); const objs = db({ name: 'objs', primaryKey: 'id', }); objs.insert({ id: 114514, name: 'Koji Tadokoro' }); t.log('Sleep 50ms to make sure the database is saved.'); yield (0, shared_1.sleep)(50); t.true(saved); })); (0, ava_1.default)('example', (t) => { t.log('Testing the example code in README.MD'); const usersArr = [ { id: 1, name: 'San Zhang' }, { id: 2, name: 'Si Li' }, { id: 3, name: 'Wu Wang' }, ]; const db = (0, src_1.connect)({ file: (0, src_1.createObjectFile)({ users: usersArr }), }); const users = db({ name: 'users', primaryKey: 'id', }); t.deepEqual(users.find({ id: 1 }), { id: 1, name: 'San Zhang' }); t.deepEqual(users.findAll(u => u.id <= 2), usersArr.filter(u => u.id <= 2)); t.false(users.has({ id: 5 })); t.false(users.insert({ id: 2, name: 'Liu Zhao' })); t.deepEqual(Array.from(users), usersArr); t.true(users.remove({ id: 1 })); t.deepEqual(users.removeAll(u => u.id <= 2), 1); t.true(users.update({ id: 3, name: 'Liu Zhao' })); });