Skip to content

Commit 7a3c492

Browse files
committed
Add test for bug
1 parent fd57101 commit 7a3c492

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

Tests/FluentPostgresDriverTests/FluentPostgresDriverTests.swift

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,47 @@ final class FluentPostgresDriverTests: XCTestCase {
245245
try await db.schema(Seq.schema).delete()
246246
}
247247

248+
func testSwift6DatePrecisionBug() async throws {
249+
final class Event: Model, @unchecked Sendable {
250+
static let schema = "orgs"
251+
252+
@ID(custom: "id", generatedBy: .database) var id: Int?
253+
@Field(key: "date") var date: Date
254+
255+
init() {}
256+
}
257+
258+
struct CreateEvent: AsyncMigration {
259+
func prepare(on database: any Database) async throws {
260+
try await database.schema("orgs")
261+
.field("id", .int, .identifier(auto: true))
262+
.field("date", .date, .required)
263+
.create()
264+
}
265+
266+
func revert(on database: any Database) async throws {
267+
try await database.schema("orgs").delete()
268+
}
269+
}
270+
271+
try await CreateEvent().prepare(on: self.db)
272+
do {
273+
let date = Date()
274+
let new = Event()
275+
XCTAssertEqual(date, date)
276+
new.date = date
277+
XCTAssertEqual(new.date, date)
278+
try await new.save(on: self.db)
279+
XCTAssertEqual(new.date, date)
280+
let fetched = try await Event.query(on: self.db).first()!
281+
XCTAssertEqual(fetched.date, date)
282+
} catch {
283+
try? await CreateEvent().revert(on: self.db)
284+
throw error
285+
}
286+
try await CreateEvent().revert(on: self.db)
287+
}
288+
248289

249290
var benchmarker: FluentBenchmarker { .init(databases: self.dbs) }
250291
var eventLoopGroup: any EventLoopGroup { MultiThreadedEventLoopGroup.singleton }

0 commit comments

Comments
 (0)