Skip to content

Commit

Permalink
Explicit UTC settings and TZ tests
Browse files Browse the repository at this point in the history
  • Loading branch information
fabriziodemaria committed Apr 5, 2024
1 parent a3a6b4d commit 5dd2073
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
1 change: 1 addition & 0 deletions Sources/Confidence/ConfidenceValue.swift
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@ extension ConfidenceValueInternal {
}
case .timestamp(let date):
let isoFormatter = ISO8601DateFormatter()
isoFormatter.timeZone = TimeZone.current
let formattedDate = isoFormatter.string(from: date)
try container.encode(formattedDate)
case .structure(let structure):
Expand Down
14 changes: 10 additions & 4 deletions Tests/ConfidenceTests/ConfidenceValueTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,10 @@ final class ConfidenceConfidenceValueTests: XCTestCase {
func testEncodeDecode() throws {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
formatter.timeZone = TimeZone(abbreviation: "UTC")
let date = try XCTUnwrap(formatter.date(from: "2022-01-01 12:00:00"))
let dateComponents = DateComponents(year: 2024, month: 4, day: 3)
formatter.timeZone = TimeZone(abbreviation: "EDT") // Verify TimeZone conversion
let date = try XCTUnwrap(formatter.date(from: "2024-04-05 16:00:00"))
var dateComponents = DateComponents(year: 2024, month: 4, day: 3)


let value = ConfidenceValue(structure: ([
"bool": ConfidenceValue(boolean: true),
Expand All @@ -119,6 +120,10 @@ final class ConfidenceConfidenceValueTests: XCTestCase {
let encoder = JSONEncoder()
encoder.outputFormatting = .sortedKeys
let resultString = String(data: try encoder.encode(value), encoding: .utf8)

let isoFormatter = ISO8601DateFormatter()
isoFormatter.timeZone = TimeZone.current
let expectedSerializedTimestamp = isoFormatter.string(from: date)
let expectedString = """
{\"bool\":true,
\"date\":\"2024-04-03\",
Expand All @@ -128,9 +133,10 @@ final class ConfidenceConfidenceValueTests: XCTestCase {
\"null\":null,
\"string\":\"value\",
\"structure\":{\"int\":5},
\"timestamp\":\"2022-01-01T12:00:00Z\"}
\"timestamp\":\"\(expectedSerializedTimestamp)\"}
""".replacingOccurrences(of: "\n", with: "") // Newlines were added for readability

XCTAssertTrue(expectedSerializedTimestamp.starts(with: "2024-04-05T22:00:00"))
XCTAssertEqual(resultString, expectedString)
}
}

0 comments on commit 5dd2073

Please sign in to comment.