From 63b42a10acb129be2a06f1bc67f0d7d01c96521e Mon Sep 17 00:00:00 2001 From: Brandon <32753167+btoms20@users.noreply.github.com> Date: Tue, 10 Feb 2026 21:07:14 -0800 Subject: [PATCH 1/2] use DummyDatabase from XCTFluent --- Tests/FluentTests/OperatorTests.swift | 47 +-------------------------- 1 file changed, 1 insertion(+), 46 deletions(-) diff --git a/Tests/FluentTests/OperatorTests.swift b/Tests/FluentTests/OperatorTests.swift index 2a1e8cec..5e99368a 100644 --- a/Tests/FluentTests/OperatorTests.swift +++ b/Tests/FluentTests/OperatorTests.swift @@ -2,6 +2,7 @@ import Fluent import Testing import Vapor import VaporTesting +import XCTFluent @Suite struct OperatorTests { @@ -43,49 +44,3 @@ private final class Planet: Model, @unchecked Sendable { @Field(key: "name") var name: String } - -private struct DummyDatabase: Database { - var inTransaction: Bool { - false - } - - var context: DatabaseContext { - .init(configuration: DummyDatabaseConfiguration(), logger: Logger(label: "fluent"), eventLoop: MultiThreadedEventLoopGroup.singleton.any()) - } - - func execute(query: DatabaseQuery, onOutput: @escaping @Sendable (any DatabaseOutput) -> Void) -> EventLoopFuture { - fatalError() - } - - func execute(schema: DatabaseSchema) -> EventLoopFuture { - fatalError() - } - - func execute(enum: DatabaseEnum) -> EventLoopFuture { - fatalError() - } - - func withConnection(_ closure: @escaping @Sendable (any Database) -> EventLoopFuture) -> EventLoopFuture { - fatalError() - } - - func transaction(_ closure: @escaping @Sendable (any Database) -> EventLoopFuture) -> EventLoopFuture { - fatalError() - } -} - -private struct DummyDatabaseConfiguration: DatabaseConfiguration { - var middleware: [any FluentKit.AnyModelMiddleware] = [] - - func makeDriver(for databases: FluentKit.Databases) -> any FluentKit.DatabaseDriver { - DummyDatabaseDriver() - } -} - -private struct DummyDatabaseDriver: DatabaseDriver { - func makeDatabase(with context: FluentKit.DatabaseContext) -> any FluentKit.Database { - DummyDatabase() - } - - func shutdown() {} -} From 5226e9f985261453889cee3a874022519e9b1b15 Mon Sep 17 00:00:00 2001 From: Brandon <32753167+btoms20@users.noreply.github.com> Date: Tue, 10 Feb 2026 21:08:13 -0800 Subject: [PATCH 2/2] ensure the description matches the operator --- Tests/FluentTests/OperatorTests.swift | 59 +++++++++++++++++++-------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/Tests/FluentTests/OperatorTests.swift b/Tests/FluentTests/OperatorTests.swift index 5e99368a..ffed30ba 100644 --- a/Tests/FluentTests/OperatorTests.swift +++ b/Tests/FluentTests/OperatorTests.swift @@ -8,30 +8,55 @@ import XCTFluent struct OperatorTests { @Test func customOperators() throws { - // TODO: What does this test...? let db = DummyDatabase() // name contains string anywhere, prefix, suffix - _ = Planet.query(on: db) - .filter(\.$name ~~ "art") - _ = Planet.query(on: db) - .filter(\.$name =~ "art") - _ = Planet.query(on: db) - .filter(\.$name ~= "art") + #expect( + Planet.query(on: db) + .filter(\.$name ~~ "art").query.description + == #"query read planets filters=[planets[name] contains "art"]"# + ) + #expect( + Planet.query(on: db) + .filter(\.$name =~ "art").query.description + == #"query read planets filters=[planets[name] startswith "art"]"# + ) + #expect( + Planet.query(on: db) + .filter(\.$name ~= "art").query.description + == #"query read planets filters=[planets[name] endswith "art"]"# + ) + // name doesn't contain string anywhere, prefix, suffix - _ = Planet.query(on: db) - .filter(\.$name !~ "art") - _ = Planet.query(on: db) - .filter(\.$name !=~ "art") - _ = Planet.query(on: db) - .filter(\.$name !~= "art") + #expect( + Planet.query(on: db) + .filter(\.$name !~ "art").query.description + == #"query read planets filters=[planets[name] !contains "art"]"# + ) + #expect( + Planet.query(on: db) + .filter(\.$name !=~ "art").query.description + == #"query read planets filters=[planets[name] !startswith "art"]"# + ) + #expect( + Planet.query(on: db) + .filter(\.$name !~= "art").query.description + == #"query read planets filters=[planets[name] !endswith "art"]"# + ) // name in array - _ = Planet.query(on: db) - .filter(\.$name ~~ ["Earth", "Mars"]) + #expect( + Planet.query(on: db) + .filter(\.$name ~~ ["Earth", "Mars"]).query.description + == #"query read planets filters=[planets[name] ~~ ["Earth", "Mars"]]"# + ) + // name not in array - _ = Planet.query(on: db) - .filter(\.$name !~ ["Earth", "Mars"]) + #expect( + Planet.query(on: db) + .filter(\.$name !~ ["Earth", "Mars"]).query.description + == #"query read planets filters=[planets[name] !~~ ["Earth", "Mars"]]"# + ) } }