You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.9 KiB
56 lines
1.9 KiB
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 })
|
|
})
|