diff --git a/API-Mocks/WordPressMocks/src/main/assets/mocks/mappings/wpcom/feature_flags.json b/API-Mocks/WordPressMocks/src/main/assets/mocks/mappings/wpcom/feature_flags.json index e3d841627f88..d445b1c3315c 100644 --- a/API-Mocks/WordPressMocks/src/main/assets/mocks/mappings/wpcom/feature_flags.json +++ b/API-Mocks/WordPressMocks/src/main/assets/mocks/mappings/wpcom/feature_flags.json @@ -14,7 +14,8 @@ "dashboard_card_activity_log": true, "dashboard_card_domain": false, "dashboard_card_free_to_paid_plans": true, - "dashboard_card_pages": true + "dashboard_card_pages": true, + "stats_traffic_tab": true } } } diff --git a/WordPress/UITests/Tests/StatsTests.swift b/WordPress/UITests/Tests/StatsTests.swift index 479da2a2de05..1c43b4ce36c8 100644 --- a/WordPress/UITests/Tests/StatsTests.swift +++ b/WordPress/UITests/Tests/StatsTests.swift @@ -37,10 +37,12 @@ class StatsTests: XCTestCase { .assertStatsAreLoaded(insightsStats) } - func testYearsStatsLoadProperly() throws { + func testTrafficYearsStatsLoadProperly() throws { let yearsStats: [String] = [ - "9,148", - "+7,933 (653%)", + "Views 9,148", + "Visitors 4,216", + "Likes 1,351", + "Comments 0", "United States, 60", "Canada, 44", "Germany, 15", @@ -49,19 +51,22 @@ class StatsTests: XCTestCase { "India, 121" ] - let currentYear = Calendar.current.component(.year, from: Date()) - let yearsChartBars: [String] = [ - "Views, \(currentYear): 9148", - "Visitors, \(currentYear): 4216", - "Views, \(currentYear - 1): 1215", - "Visitors, \(currentYear - 1): 632", - "Views, \(currentYear - 2): 788", - "Visitors, \(currentYear - 2): 465" + let viewsYearsChartBars: [String] = [ + " J: 1218.0", + " F: 1233.0" + ] + + let visitorsYearsChartBars: [String] = [ + " J: 623.0", + " F: 655.0" ] try StatsScreen() - .switchTo(mode: "years") + .switchTo(mode: "traffic") + .selectByYearPeriod() .assertStatsAreLoaded(yearsStats) - .assertChartIsLoaded(yearsChartBars) + .assertChartIsLoaded(viewsYearsChartBars) + .selectVisitorsTab() + .assertChartIsLoaded(visitorsYearsChartBars) } } diff --git a/WordPress/UITestsFoundation/Screens/StatsScreen.swift b/WordPress/UITestsFoundation/Screens/StatsScreen.swift index e9c1b64bccea..0f2ea04c5689 100644 --- a/WordPress/UITestsFoundation/Screens/StatsScreen.swift +++ b/WordPress/UITestsFoundation/Screens/StatsScreen.swift @@ -7,11 +7,26 @@ public class StatsScreen: ScreenObject { $0.buttons["dismiss-customize-insights-cell"] } + private let byDayButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["By day"] + } + + private let visitorsButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["visitors"] + } + + private let byYearButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["By year"] + } + private let statsDashboardGetter: (XCUIApplication) -> XCUIElement = { $0.otherElements["stats-dashboard"] } var dismissCustomizeInsightsButton: XCUIElement { dismissCustomizeInsightsButtonGetter(app) } + var byDayButton: XCUIElement { byDayButtonGetter(app) } + var byYearButton: XCUIElement { byYearButtonGetter(app) } + var visitorsButton: XCUIElement { visitorsButtonGetter(app) } var statsDashboard: XCUIElement { statsDashboardGetter(app) } public init(app: XCUIApplication = XCUIApplication()) throws { @@ -41,6 +56,19 @@ public class StatsScreen: ScreenObject { return true } + @discardableResult + public func selectByYearPeriod() -> Self { + byDayButton.tap() + byYearButton.tap() + return self + } + + @discardableResult + public func selectVisitorsTab() -> Self { + visitorsButton.tap() + return self + } + @discardableResult public func assertStatsAreLoaded(_ elements: [String]) -> Self { XCTAssert(verifyStatsLoaded(elements))