import { expect, test } from 'bun:test' import ItemStore from './../resources/itemStore.ts' import runMigrationSqlite from './../src/migration.ts' import getOrCreateSqlite from './../src/sqlite.ts' test('store', () => { const db = getOrCreateSqlite({ 'name': ':memory:' }) const itemStore = new ItemStore(db) expect(typeof itemStore === 'object').toBeTruthy(); }) test('store / insert', async () => { const db = getOrCreateSqlite({ 'name': ':memory:' }) await runMigrationSqlite('./../resources', db) const itemStore = new ItemStore(db) const id = itemStore.create({ 'name': 'Lorem ipsum dolor', 'description': 'lore' }) const result = itemStore.findOneById(id) expect(result).toEqual({ 'id': 1, 'name': 'Lorem ipsum dolor', 'description': 'lore', 'date_created_at': null, 'date_upated_at': null }) }) test('store / remove', async () => { const db = getOrCreateSqlite({ 'name': ':memory:' }) await runMigrationSqlite('./../resources', db) const itemStore = new ItemStore(db) itemStore.create({ 'name': 'Lorem ipsum dolor', 'description': 'lore' }) const result = db.query("SELECT * FROM items").get() itemStore.remove(result.id) const emptyResult = db.query("SELECT * FROM items").get() expect(emptyResult).toEqual(null) }) test('store / update', async () => { const db = getOrCreateSqlite({ 'name': ':memory:' }) await runMigrationSqlite('./../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) expect(result).toEqual({ 'id': 1, 'name': 'lore', 'description': 'Lorem ipsum dolor', 'date_created_at': null, 'date_upated_at': null }) })