const dependencies = Layer.scopedDiscard(
Effect.acquireRelease(
Effect.gen(function* () {
yield* Database.seed()
}),
Effect.gen(function* () {
yield* Database.reset()
})
)
).pipe(
Layer.provideMerge(Database.TestLayer)
)
// DB seed and reset only happens once, leads to pollution across the tests
describe("test", () => {
it.layer(dependencies)((it) => {
it.effect("foo", () => Effect.void)
it.effect("bar", () => Effect.void)
})
})
// DB seed and reset happens with each test, works great
describe("test", () => {
it.effect("foo", () => Effect.void.pipe(Effect.provide(dependencies)))
it.effect("bar", () => Effect.void.pipe(Effect.provide(dependencies)))
})
const dependencies = Layer.scopedDiscard(
Effect.acquireRelease(
Effect.gen(function* () {
yield* Database.seed()
}),
Effect.gen(function* () {
yield* Database.reset()
})
)
).pipe(
Layer.provideMerge(Database.TestLayer)
)
// DB seed and reset only happens once, leads to pollution across the tests
describe("test", () => {
it.layer(dependencies)((it) => {
it.effect("foo", () => Effect.void)
it.effect("bar", () => Effect.void)
})
})
// DB seed and reset happens with each test, works great
describe("test", () => {
it.effect("foo", () => Effect.void.pipe(Effect.provide(dependencies)))
it.effect("bar", () => Effect.void.pipe(Effect.provide(dependencies)))
})