Skip to content

Commit

Permalink
Use RFC339NoTimeDateFormatter for some of the Stats endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
staskus committed Jun 21, 2024
1 parent dabe475 commit 478d749
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,6 @@ extension StatsAllTimesInsight: StatsInsightData {

// MARK: -
private static var dateFormatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
return formatter
RFC339NoTimeDateFormatter()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -185,10 +185,7 @@ private extension StatsSummaryData {
}

static var regularDateFormatter: DateFormatter {
let df = DateFormatter()
df.locale = Locale(identifier: "en_US_POS")
df.dateFormat = "yyyy-MM-dd"
return df
RFC339NoTimeDateFormatter()
}

// We have our own handrolled date format for data broken up on week basis.
Expand All @@ -201,8 +198,7 @@ private extension StatsSummaryData {
// represent the _beginning_ of the period they're applying to, e.g.
// data set for `2019W02W18` is containing data for the period of Feb 18 - Feb 24 2019.
private static var weeksDateFormatter: DateFormatter {
let df = DateFormatter()
df.locale = Locale(identifier: "en_US_POS")
let df = RFC339NoTimeDateFormatter()
df.dateFormat = "yyyy'W'MM'W'dd"
return df
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@ open class StatsServiceRemoteV2: ServiceRemoteWordPressComREST {
private let siteTimezone: TimeZone

private var periodDataQueryDateFormatter: DateFormatter {
let df = DateFormatter()
df.locale = Locale(identifier: "en_US_POSIX")
df.dateFormat = "yyyy-MM-dd"
return df
RFC339NoTimeDateFormatter()
}

private lazy var calendarForSite: Calendar = {
Expand Down
28 changes: 14 additions & 14 deletions WordPressKit/Tests/WordPressKitTests/Tests/StatsRemoteV2Tests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {

let calendar = Calendar.autoupdatingCurrent

let march28 = DateComponents(year: 2018, month: 3, day: 28)
let march29 = DateComponents(year: 2018, month: 3, day: 29)
let feb7 = DateComponents(year: 2019, month: 2, day: 7)
let march28 = DateComponents(timeZone: .current, year: 2018, month: 3, day: 28)
let march29 = DateComponents(timeZone: .current, year: 2018, month: 3, day: 29)
let feb7 = DateComponents(timeZone: .current, year: 2019, month: 2, day: 7)

XCTAssertEqual(insight?.longestStreakStart, calendar.date(from: march28))
XCTAssertEqual(insight?.longestStreakEnd, calendar.date(from: march29))
Expand Down Expand Up @@ -407,7 +407,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {

stubRemoteResponse(siteVisitsDataEndpoint, filename: getVisitsDayMockFilename, contentType: .ApplicationJSON)

let feb21 = DateComponents(year: 2019, month: 2, day: 21)
let feb21 = DateComponents(timeZone: .current, year: 2019, month: 2, day: 21)
let date = Calendar.autoupdatingCurrent.date(from: feb21)!

remote.getData(for: .day, endingOn: date) { (summary: StatsSummaryTimeIntervalData?, error: Error?) in
Expand Down Expand Up @@ -516,7 +516,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {

stubRemoteResponse(siteVisitsDataEndpoint, filename: getVisitsWeekMockFilename, contentType: .ApplicationJSON)

let feb21 = DateComponents(year: 2019, month: 2, day: 21)
let feb21 = DateComponents(timeZone: .current, year: 2019, month: 2, day: 21)
let date = Calendar.autoupdatingCurrent.date(from: feb21)!

remote.getData(for: .week, endingOn: date) { (summary: StatsSummaryTimeIntervalData?, error: Error?) in
Expand All @@ -530,7 +530,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {
XCTAssertEqual(summary?.summaryData[0].likesCount, 855)
XCTAssertEqual(summary?.summaryData[0].commentsCount, 44)

let dec17 = DateComponents(year: 2018, month: 12, day: 17)
let dec17 = DateComponents(timeZone: .current, year: 2018, month: 12, day: 17)
let dec17Date = Calendar.autoupdatingCurrent.date(from: dec17)!
XCTAssertEqual(summary?.summaryData[0].periodStartDate, dec17Date)

Expand All @@ -554,7 +554,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {

stubRemoteResponse(siteVisitsDataEndpoint, filename: getVisitsMonthMockFilename, contentType: .ApplicationJSON)

let feb21 = DateComponents(year: 2019, month: 2, day: 21)
let feb21 = DateComponents(timeZone: .current, year: 2019, month: 2, day: 21)
let date = Calendar.autoupdatingCurrent.date(from: feb21)!

remote.getData(for: .month, endingOn: date) { (summary: StatsSummaryTimeIntervalData?, error: Error?) in
Expand All @@ -568,7 +568,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {
XCTAssertEqual(summary?.summaryData[0].likesCount, 72)
XCTAssertEqual(summary?.summaryData[0].commentsCount, 0)

let may1 = DateComponents(year: 2018, month: 5, day: 1)
let may1 = DateComponents(timeZone: .current, year: 2018, month: 5, day: 1)
let may1Date = Calendar.autoupdatingCurrent.date(from: may1)!
XCTAssertEqual(summary?.summaryData[0].periodStartDate, may1Date)

Expand All @@ -577,7 +577,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {
XCTAssertEqual(summary?.summaryData[9].likesCount, 116)
XCTAssertEqual(summary?.summaryData[9].commentsCount, 0)

let nineMonthsFromMay1 = Calendar.autoupdatingCurrent.date(byAdding: .month, value: 9, to: may1Date)!
let nineMonthsFromMay1 = Calendar.autoupdatingCurrent.date(from: DateComponents(timeZone: .current, year: 2019, month: 2, day: 1))!

XCTAssertEqual(summary?.summaryData[9].periodStartDate, nineMonthsFromMay1)

Expand All @@ -592,7 +592,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {

stubRemoteResponse(siteVisitsDataEndpoint, filename: getVisitsMonthWithWeekUnitMockFilename, contentType: .ApplicationJSON)

let jan31 = DateComponents(year: 2024, month: 1, day: 31)
let jan31 = DateComponents(timeZone: .current, year: 2024, month: 1, day: 31)
let date = Calendar.autoupdatingCurrent.date(from: jan31)!

remote.getData(for: .month, unit: .week, endingOn: date, limit: 5) { (summary: StatsSummaryTimeIntervalData?, error: Error?) in
Expand All @@ -609,7 +609,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {
XCTAssertEqual(summary?.summaryData[0].commentsCount, 50)
XCTAssertEqual(summary?.summaryData[0].period, .week)

let jan1 = DateComponents(year: 2024, month: 1, day: 1)
let jan1 = DateComponents(timeZone: .current, year: 2024, month: 1, day: 1)
let jan1Date = Calendar.autoupdatingCurrent.date(from: jan1)!
XCTAssertEqual(summary?.summaryData[0].periodStartDate, jan1Date)

Expand All @@ -628,7 +628,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {

stubRemoteResponse(siteVisitsDataEndpoint, filename: getVisitsMonthMockFilename, contentType: .ApplicationJSON)

let feb21 = DateComponents(year: 2019, month: 2, day: 21)
let feb21 = DateComponents(timeZone: .current, year: 2019, month: 2, day: 21)
let date = Calendar.autoupdatingCurrent.date(from: feb21)!

remote.getData(for: .month, endingOn: date) { (summary: StatsLikesSummaryTimeIntervalData?, error: Error?) in
Expand All @@ -642,7 +642,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {
XCTAssertEqual(summary?.summaryData[0].likesCount, 72)
XCTAssertEqual(summary?.summaryData[0].commentsCount, 0)

let may1 = DateComponents(year: 2018, month: 5, day: 1)
let may1 = DateComponents(timeZone: .current, year: 2018, month: 5, day: 1)
let may1Date = Calendar.autoupdatingCurrent.date(from: may1)!
XCTAssertEqual(summary?.summaryData[0].periodStartDate, may1Date)

Expand All @@ -651,7 +651,7 @@ class StatsRemoteV2Tests: RemoteTestCase, RESTTestable {
XCTAssertEqual(summary?.summaryData[9].likesCount, 116)
XCTAssertEqual(summary?.summaryData[9].commentsCount, 0)

let nineMonthsFromMay1 = Calendar.autoupdatingCurrent.date(byAdding: .month, value: 9, to: may1Date)!
let nineMonthsFromMay1 = Calendar.autoupdatingCurrent.date(from: DateComponents(timeZone: .current, year: 2019, month: 2, day: 1))!

XCTAssertEqual(summary?.summaryData[9].periodStartDate, nineMonthsFromMay1)

Expand Down

0 comments on commit 478d749

Please sign in to comment.