@@ -72,18 +72,18 @@ extension AppTestCase {
72
72
try await snapshotCreated. withValue { snapshotCreated in
73
73
if !snapshotCreated {
74
74
try await createSchema ( environment, databaseName: testDbName)
75
- try await createSnapshot ( original: testDbName, snapshot: snapshotName)
75
+ try await createSnapshot ( original: testDbName, snapshot: snapshotName, environment : environment )
76
76
snapshotCreated = true
77
77
}
78
78
}
79
79
80
- try await restoreSnapshot ( original: testDbName, snapshot: snapshotName)
80
+ try await restoreSnapshot ( original: testDbName, snapshot: snapshotName, environment : environment )
81
81
}
82
82
83
83
84
84
static func createSchema( _ environment: Environment , databaseName: String ) async throws {
85
85
do {
86
- try await withDatabase ( " postgres " ) { // Connect to `postgres` db in order to reset the test db
86
+ try await withDatabase ( " postgres " , . testing ) { // Connect to `postgres` db in order to reset the test db
87
87
try await $0. query ( PostgresQuery ( unsafeSQL: " DROP DATABASE IF EXISTS \( databaseName) WITH (FORCE) " ) )
88
88
try await $0. query ( PostgresQuery ( unsafeSQL: " CREATE DATABASE \( databaseName) " ) )
89
89
}
@@ -102,9 +102,9 @@ extension AppTestCase {
102
102
}
103
103
104
104
105
- static func createSnapshot( original: String , snapshot: String ) async throws {
105
+ static func createSnapshot( original: String , snapshot: String , environment : Environment ) async throws {
106
106
do {
107
- try await withDatabase ( " postgres " ) { client in
107
+ try await withDatabase ( " postgres " , environment ) { client in
108
108
try await client. query ( PostgresQuery ( unsafeSQL: " DROP DATABASE IF EXISTS \( snapshot) WITH (FORCE) " ) )
109
109
try await client. query ( PostgresQuery ( unsafeSQL: " CREATE DATABASE \( snapshot) TEMPLATE \( original) " ) )
110
110
}
@@ -115,10 +115,10 @@ extension AppTestCase {
115
115
}
116
116
117
117
118
- static func restoreSnapshot( original: String , snapshot: String ) async throws {
118
+ static func restoreSnapshot( original: String , snapshot: String , environment : Environment ) async throws {
119
119
// delete db and re-create from snapshot
120
120
do {
121
- try await withDatabase ( " postgres " ) { client in
121
+ try await withDatabase ( " postgres " , environment ) { client in
122
122
try await client. query ( PostgresQuery ( unsafeSQL: " DROP DATABASE IF EXISTS \( original) WITH (FORCE) " ) )
123
123
try await client. query ( PostgresQuery ( unsafeSQL: " CREATE DATABASE \( original) TEMPLATE \( snapshot) " ) )
124
124
}
@@ -170,22 +170,23 @@ extension AppTestCase {
170
170
}
171
171
172
172
173
- private func connect( to databaseName: String ) throws -> PostgresClient {
173
+ private func connect( to databaseName: String , _ environment: Environment ) async throws -> PostgresClient {
174
+ await DotEnvFile . load ( for: environment, fileio: . init( threadPool: . singleton) )
174
175
let host = Environment . get ( " DATABASE_HOST " ) !
175
176
let port = Environment . get ( " DATABASE_PORT " ) . flatMap ( Int . init) !
176
177
let username = Environment . get ( " DATABASE_USERNAME " ) !
177
178
let password = Environment . get ( " DATABASE_PASSWORD " ) !
178
179
179
180
let config = PostgresClient . Configuration ( host: host, port: port, username: username, password: password, database: databaseName, tls: . disable)
181
+
180
182
return . init( configuration: config)
181
183
}
182
184
183
- private func withDatabase( _ databaseName: String , _ query: @escaping ( PostgresClient ) async throws -> Void ) async throws {
184
- let client = try connect ( to: databaseName)
185
+
186
+ private func withDatabase( _ databaseName: String , _ environment: Environment , _ query: @escaping ( PostgresClient ) async throws -> Void ) async throws {
187
+ let client = try await connect ( to: databaseName, environment)
185
188
try await withThrowingTaskGroup ( of: Void . self) { taskGroup in
186
- taskGroup. addTask {
187
- await client. run ( )
188
- }
189
+ taskGroup. addTask { await client. run ( ) }
189
190
190
191
try await query ( client)
191
192
0 commit comments