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