import { test } from 'node:test' import assert from 'node:assert/strict' import path from 'path' import ItemStore from './../resources/itemStore.js' import runMigrationSqlite from './../src/migration.js' import getOrCreateSqlite from './../src/sqlite.js' test('store', () => { const db = getOrCreateSqlite({ 'uri': ':memory:' }) const itemStore = new ItemStore(db) assert.ok(typeof itemStore === 'object') }) test('store / insert', async () => { const db = getOrCreateSqlite({ 'uri': ':memory:' }) await runMigrationSqlite(path.join(path.resolve(), './resources'), db) const itemStore = new ItemStore(db) const id = itemStore.create({ 'name': 'Lorem ipsum dolor', 'description': 'lore' }) const result = itemStore.findOneById(id) assert.deepEqual(result, { 'id': 1, 'name': 'Lorem ipsum dolor', 'description': 'lore', 'date_created_at': null, 'date_upated_at': null }) }) test('store / remove', async () => { const db = getOrCreateSqlite({ 'uri': ':memory:' }) await runMigrationSqlite(path.join(path.resolve(), './resources'), db) const itemStore = new ItemStore(db) itemStore.create({ 'name': 'Lorem ipsum dolor', 'description': 'lore' }) const result = db.prepare("SELECT * FROM items").get() itemStore.remove(result.id) const emptyResult = db.prepare("SELECT * FROM items").get() assert.equal(emptyResult, undefined) }) test('store / update', async () => { const db = getOrCreateSqlite({ 'uri': ':memory:' }) await runMigrationSqlite(path.join(path.resolve(), './resources'), db) const itemStore = new ItemStore(db) const id = itemStore.create({ 'name': 'Lorem ipsum dolor', 'description': 'lore' }) itemStore.update(id, { 'name': 'lore', 'description': 'Lorem ipsum dolor' }) const result = itemStore.findOneById(id) assert.deepEqual(result, { 'id': 1, 'name': 'lore', 'description': 'Lorem ipsum dolor', 'date_created_at': null, 'date_upated_at': null }) })