feat: Begins snapshot testing for html

This commit is contained in:
2025-01-21 12:39:30 -05:00
parent 97b231767e
commit 07f7f7f957
23 changed files with 247 additions and 63 deletions

View File

@@ -8,7 +8,10 @@ import Vapor
@preconcurrency import VaporRouting
// configures your application
public func configure(_ app: Application) async throws {
public func configure(
_ app: Application,
makeDatabaseClient: @escaping (any Database) -> DatabaseClient = { .live(database: $0) }
) async throws {
// cors middleware should come before default error middleware using `at: .beginning`
let corsConfiguration = CORSMiddleware.Configuration(
allowedOrigin: .all,
@@ -21,7 +24,6 @@ public func configure(_ app: Application) async throws {
app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory))
app.middleware.use(app.sessions.middleware)
app.middleware.use(DependenciesMiddleware())
#if DEBUG
app.lifecycle.use(BrowserSyncHandler())
@@ -35,8 +37,13 @@ public func configure(_ app: Application) async throws {
app.databases.use(DatabaseConfigurationFactory.sqlite(.memory), as: .sqlite)
}
let databaseClient = DatabaseClient.live(database: app.db)
try await app.migrations.add(databaseClient.migrations())
let databaseClient = makeDatabaseClient(app.db)
if app.environment != .testing {
try await app.migrations.add(databaseClient.migrations())
}
app.middleware.use(DependenciesMiddleware(database: databaseClient))
app.mount(
SiteRoute.router,
@@ -50,7 +57,9 @@ public func configure(_ app: Application) async throws {
use: siteHandler
)
try await app.autoMigrate()
if app.environment != .testing {
try await app.autoMigrate()
}
#if DEBUG
app.asyncCommands.use(SeedCommand(), as: "seed")