Skip to content

Commit 1cad1dd

Browse files
Merge pull request #3709 from SwiftPackageIndex/issue-3655-swift-testing-part-25
Issue 3655 swift testing part 25
2 parents 8539e2c + d390bc6 commit 1cad1dd

File tree

5 files changed

+1740
-1621
lines changed

5 files changed

+1740
-1621
lines changed

Tests/AppTests/AppTestCase.swift

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
@testable import App
1616

1717
import Dependencies
18+
import Fluent
1819
import NIOConcurrencyHelpers
1920
import PostgresNIO
2021
import SQLKit
@@ -181,6 +182,43 @@ extension AppTestCase {
181182
}
182183

183184

185+
// FIXME: Move this once AppTestCase can be removed. These are helpers created during the transition to Swift Testing.
186+
extension Database {
187+
func renderSQL(_ builder: SQLSelectBuilder) -> String {
188+
renderSQL(builder.query)
189+
}
190+
191+
func renderSQL(_ query: SQLExpression) -> String {
192+
var serializer = SQLSerializer(database: self as! SQLDatabase)
193+
query.serialize(to: &serializer)
194+
return serializer.sql
195+
}
196+
197+
func binds(_ builder: SQLSelectBuilder?) -> [String] {
198+
binds(builder?.query)
199+
}
200+
201+
func binds(_ query: SQLExpression?) -> [String] {
202+
var serializer = SQLSerializer(database: self as! SQLDatabase)
203+
query?.serialize(to: &serializer)
204+
return serializer.binds.reduce(into: []) { result, bind in
205+
switch bind {
206+
case let bind as Date:
207+
result.append(DateFormatter.filterParseFormatter.string(from: bind))
208+
case let bind as Set<Package.PlatformCompatibility>:
209+
let s = bind.map(\.rawValue).sorted().joined(separator: ",")
210+
result.append("{\(s)}")
211+
case let bind as Set<ProductTypeSearchFilter.ProductType>:
212+
let s = bind.map(\.rawValue).sorted().joined(separator: ",")
213+
result.append("{\(s)}")
214+
default:
215+
result.append("\(bind)")
216+
}
217+
}
218+
}
219+
}
220+
221+
184222
private func connect(to databaseName: String, _ environment: Environment) async throws -> PostgresClient {
185223
await DotEnvFile.load(for: environment, fileio: .init(threadPool: .singleton))
186224
let host = Environment.get("DATABASE_HOST")!

0 commit comments

Comments
 (0)