28 lines
784 B
TypeScript
28 lines
784 B
TypeScript
import { describe, expect, it } from 'bun:test'
|
|
import { Effect } from 'effect'
|
|
|
|
import * as DB from '../src/lib/server/db/DB'
|
|
import { isNotNull } from 'drizzle-orm'
|
|
import { User } from '../src/lib/server/db/user'
|
|
|
|
describe('Service', () => {
|
|
it('should query stuff', async () => {
|
|
const testDb = Effect.gen(function* () {
|
|
const db = yield* DB.Db
|
|
|
|
const user: User[] = yield* db.use((db) =>
|
|
db.select().from(DB.tables.user).where(isNotNull(DB.tables.user.id)),
|
|
)
|
|
|
|
return user
|
|
})
|
|
.pipe(Effect.provide(DB.fromEnv))
|
|
.pipe(Effect.catchTag('DbError', (_e) => Effect.succeed([] as User[])))
|
|
.pipe(Effect.catchTag('ConfigError', (_e) => Effect.succeed([] as User[])))
|
|
|
|
const result = await Effect.runPromise(testDb)
|
|
|
|
expect(result).toHaveLength(0)
|
|
})
|
|
})
|