From 81c07f7375f71df68991c00af0dedd1e65e92561 Mon Sep 17 00:00:00 2001 From: Caio Lima Date: Fri, 14 Sep 2018 16:07:31 -0400 Subject: [PATCH 1/3] set cell accessibility identifiers to section+cell keys --- FunctionalTableData/TableView/FunctionalTableData.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/FunctionalTableData/TableView/FunctionalTableData.swift b/FunctionalTableData/TableView/FunctionalTableData.swift index 80f2e6c..20f055f 100644 --- a/FunctionalTableData/TableView/FunctionalTableData.swift +++ b/FunctionalTableData/TableView/FunctionalTableData.swift @@ -541,6 +541,7 @@ extension FunctionalTableData: UITableViewDataSource { let row = indexPath.row let cellConfig = sectionData[row] let cell = cellConfig.dequeueCell(from: tableView, at: indexPath) + cell.accessibilityIdentifier = sectionData.sectionKeyPathForRow(row) cellConfig.update(cell: cell, in: tableView) sectionData.mergedStyle(for: row)?.configure(cell: cell, in: tableView) From f6a7fdb189c471b90c90bc5ec41088790e5d4707 Mon Sep 17 00:00:00 2001 From: Caio Lima Date: Fri, 14 Sep 2018 16:52:06 -0400 Subject: [PATCH 2/3] add tests to check accessibility identifiers --- .../FunctionalDataTests.swift | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/FunctionalTableDataTests/FunctionalDataTests.swift b/FunctionalTableDataTests/FunctionalDataTests.swift index 5b31d95..bd3ccdb 100644 --- a/FunctionalTableDataTests/FunctionalDataTests.swift +++ b/FunctionalTableDataTests/FunctionalDataTests.swift @@ -73,6 +73,25 @@ class FunctionalDataTests: XCTestCase { XCTAssertNotNil(indexPath) } + func testCellAccessibilityIdentifiers() { + let tableData = FunctionalTableData() + let tableView = UITableView() + + tableData.tableView = tableView + let expectation1 = expectation(description: "rendered") + let cellConfig = TestCaseCell(key: "cellKey", state: TestCaseState(data: "red"), cellUpdater: TestCaseState.updateView) + let section = TableSection(key: "sectionKey", rows: [cellConfig]) + + tableData.renderAndDiff([section]) { + expectation1.fulfill() + } + waitForExpectations(timeout: 1, handler: nil) + + let cell = tableData.tableView?.visibleCells.first + XCTAssertNotNil(cell) + XCTAssertEqual(cell!.accessibilityIdentifier, section.sectionKeyPathForRow(0)) + } + func testPerformance() { let functionalData = FunctionalTableData() From 645787e9144ada6841bb5c898419e9fdfbfa8fdd Mon Sep 17 00:00:00 2001 From: Caio Lima Date: Mon, 17 Sep 2018 16:43:28 -0400 Subject: [PATCH 3/3] hard code accessibility identifier in test --- FunctionalTableDataTests/FunctionalDataTests.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FunctionalTableDataTests/FunctionalDataTests.swift b/FunctionalTableDataTests/FunctionalDataTests.swift index bd3ccdb..35c6bd6 100644 --- a/FunctionalTableDataTests/FunctionalDataTests.swift +++ b/FunctionalTableDataTests/FunctionalDataTests.swift @@ -88,8 +88,7 @@ class FunctionalDataTests: XCTestCase { waitForExpectations(timeout: 1, handler: nil) let cell = tableData.tableView?.visibleCells.first - XCTAssertNotNil(cell) - XCTAssertEqual(cell!.accessibilityIdentifier, section.sectionKeyPathForRow(0)) + XCTAssertEqual(cell?.accessibilityIdentifier, "sectionKeycellKey") } func testPerformance() {