1import { it } from "@effect/vitest"
2import { Layer } from "effect"
3import * as PersistedCacheTest from "effect-test/persistence/PersistedCacheTest"
4import * as PersistedQueueTest from "effect-test/persistence/PersistedQueueTest"
5import { PersistedQueue, Persistence } from "effect/persistence"
6import { MssqlContainer } from "./utils.ts"
7
8PersistedCacheTest.suite(
9 "sql-mssql-multi",
10 Persistence.layerSqlMultiTable.pipe(Layer.provide(MssqlContainer.layerClient))
11)
12
13PersistedCacheTest.suite(
14 "sql-mssql-single",
15 Persistence.layerSql.pipe(Layer.provide(MssqlContainer.layerClient))
16)
17
18// Allow extra time for MSSQL-backed layer setup and teardown under CI load.
19// Keep the queue test bodies at their 30-second timeout.
20PersistedQueueTest.suiteWith(
21 "sql-mssql",
22 PersistedQueue.layerStoreSql().pipe(Layer.provide(MssqlContainer.layerClient)),
23 it,
24 "30 seconds",
25 "90 seconds"
26)