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.
sqlite/test/store.test.js

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 })
})