UNPKG

@sinkingsheep/jsondb

Version:

A lightweight JSON-based database for Node.js

59 lines 3.31 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 JsonDB_1 = __importDefault(require("./JsonDB")); const promises_1 = __importDefault(require("fs/promises")); const path_1 = __importDefault(require("path")); function runTest() { return __awaiter(this, void 0, void 0, function* () { const TEST_DIR = 'test_data'; // Clean up test directory before starting try { yield promises_1.default.rm(TEST_DIR, { recursive: true, force: true }); } catch (error) { // Directory might not exist, ignore error } const db = new JsonDB_1.default({ directory: TEST_DIR, autoSave: true }); // Enable autoSave yield db.init(); console.log('Inserting test data...'); const insertedUsers = yield db.insertMany('users', [ { name: 'Alice', age: 25, status: 'active', scores: [85, 92, 88], email: 'alice@test.com' }, { name: 'Bob', age: 30, status: 'inactive', scores: [75, 80, 85], email: 'bob@test.com' }, { name: 'Charlie', age: 35, status: 'active', scores: [95, 90, 92], email: 'charlie@test.com' }, { name: 'David', age: 28, status: 'active', scores: [70, 75, 80], email: 'david@test.com' } ]); console.log('\nInserted documents:', insertedUsers.length); // Verify the file was created and contains data const filePath = path_1.default.join(TEST_DIR, 'users.json'); const fileContent = yield promises_1.default.readFile(filePath, 'utf8'); const savedData = JSON.parse(fileContent); console.log('\nSaved document count:', Object.keys(savedData).length); console.log('\nTesting operators...'); // Test $eq const eqResults = yield db.find('users', { age: { $eq: 30 } }); console.log('\n$eq test (age = 30):', eqResults.map(u => `${u.name} (${u.age})`)); // Test $gt const gtResults = yield db.find('users', { age: { $gt: 30 } }); console.log('\n$gt test (age > 30):', gtResults.map(u => `${u.name} (${u.age})`)); // Test $in const inResults = yield db.find('users', { age: { $in: [25, 35] } }); console.log('\n$in test (age in [25, 35]):', inResults.map(u => `${u.name} (${u.age})`)); // Cleanup yield db.close(); yield promises_1.default.rm(TEST_DIR, { recursive: true, force: true }); }); } runTest().catch(console.error); //# sourceMappingURL=test.js.map