Skip to content

Commit

Permalink
Replace use of ISO8601DateFormatter
Browse files Browse the repository at this point in the history
  • Loading branch information
mgacy committed Oct 22, 2024
1 parent e95a26d commit 7dce461
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
17 changes: 12 additions & 5 deletions Sources/Persistence/TimestampProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,16 @@ public protocol DateFormatting: Sendable {
func string(from date: Date) -> String
}

extension DateFormatter: DateFormatting {}

extension ISO8601DateFormatter: DateFormatting {}
extension DateFormatter: DateFormatting {
public static let iso8601: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
formatter.calendar = Calendar(identifier: .iso8601)
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.locale = Locale(identifier: "en_US_POSIX")
return formatter
}()
}

/// A type to provide timestamps.
public struct TimestampProvider: Sendable {
Expand Down Expand Up @@ -48,7 +55,7 @@ public extension TimestampProvider {
/// A live implementation.
static var live: Self {
.init(
dateProvider: Date.init,
formatter: ISO8601DateFormatter())
dateProvider: { Date() },
formatter: DateFormatter.iso8601)
}
}
2 changes: 1 addition & 1 deletion Tests/PersistenceTests/PersistenceTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ final class PersistenceTests: XCTestCase {

let timestampProvider = TimestampProvider(
dateProvider: { Date(timeIntervalSince1970: 0) },
formatter: ISO8601DateFormatter())
formatter: DateFormatter.iso8601)

let expectation = expectation(description: "Model persisted")
let sut = Persistence.addingTimestamp(named: "CreatedAt", from: timestampProvider) { actual in
Expand Down
2 changes: 1 addition & 1 deletion Tests/PersistenceTests/TimestampProviderTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ final class TimestampProviderTests: XCTestCase {

let sut = TimestampProvider(
dateProvider: { Date(timeIntervalSince1970: 0) },
formatter: ISO8601DateFormatter())
formatter: DateFormatter.iso8601)
let actual = sut.timestamp()
XCTAssertEqual(actual, expected)
}
Expand Down

0 comments on commit 7dce461

Please sign in to comment.