Skip to content

Commit

Permalink
chore(tests): delete tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bassrock committed Apr 6, 2023
1 parent f9ea6df commit ccb1cdb
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 122 deletions.
107 changes: 48 additions & 59 deletions Tests iOS/ArchiveAnItemTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,26 +16,7 @@ class ArchiveAnItemTests: XCTestCase {
app = PocketAppElement(app: uiApp)

server = Application()

server.routes.post("/graphql") { request, _ in
let apiRequest = ClientAPIRequest(request)

if apiRequest.isForSlateLineup {
return Response.slateLineup()
} else if apiRequest.isForSavesContent {
return Response.saves()
} else if apiRequest.isForArchivedContent {
return Response.archivedContent()
} else if apiRequest.isForTags {
return Response.emptyTags()
} else {
return Response.fallbackResponses(apiRequest: apiRequest)
}
}

try server.start()

app.launch()
}

override func tearDownWithError() throws {
Expand All @@ -44,6 +25,18 @@ class ArchiveAnItemTests: XCTestCase {
}

func test_archivingAnItemFromList_removesItFromList_andSyncsWithServer() {
let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, _ -> Response in
let apiRequest = ClientAPIRequest(request)
if apiRequest.isToArchiveAnItem {
defer { expectRequest.fulfill() }
XCTAssertTrue(apiRequest.isToArchiveAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))
}
return .fallbackResponses(apiRequest: apiRequest)
}
app.launch()

app.tabBar.savesButton.wait().tap()

let itemCell = app
Expand All @@ -54,22 +47,24 @@ class ArchiveAnItemTests: XCTestCase {
.itemActionButton.wait()
.tap()

let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, loop in
defer { expectRequest.fulfill() }
let apiRequest = ClientAPIRequest(request)
XCTAssertTrue(apiRequest.isToArchiveAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))

return Response.archive()
}

app.archiveButton.wait().tap()
wait(for: [expectRequest], timeout: 10)
waitForDisappearance(of: itemCell)
}

func test_archivingAnItemFromList_bySwipe_removesItFromList_andSyncWithServer() {
let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, _ -> Response in
let apiRequest = ClientAPIRequest(request)
if apiRequest.isToArchiveAnItem {
defer { expectRequest.fulfill() }
XCTAssertTrue(apiRequest.isToArchiveAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))
}
return .fallbackResponses(apiRequest: apiRequest)
}
app.launch()

app.tabBar.savesButton.wait().tap()

let itemCell = app
Expand All @@ -78,16 +73,6 @@ class ArchiveAnItemTests: XCTestCase {

itemCell.element.swipeLeft()

let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, loop in
defer { expectRequest.fulfill() }
let apiRequest = ClientAPIRequest(request)
XCTAssertTrue(apiRequest.isToArchiveAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))

return Response.archive()
}

app
.saves
.archiveSwipeButton.wait()
Expand All @@ -98,23 +83,25 @@ class ArchiveAnItemTests: XCTestCase {
}

func test_archivingAnItemFromReader_archivesItem_andPopsBackToList() {
let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, _ -> Response in
let apiRequest = ClientAPIRequest(request)
if apiRequest.isToArchiveAnItem {
defer { expectRequest.fulfill() }
XCTAssertTrue(apiRequest.isToArchiveAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))
}
return .fallbackResponses(apiRequest: apiRequest)
}
app.launch()

app.tabBar.savesButton.wait().tap()

let listView = app.saves
let itemCell = listView.itemView(matching: "Item 2")

itemCell.wait().tap()

let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, loop in
defer { expectRequest.fulfill() }
let apiRequest = ClientAPIRequest(request)
XCTAssertTrue(apiRequest.isToArchiveAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))

return Response.archive()
}

let archiveNavButton = XCUIApplication().buttons["archiveNavButton"]
XCTAssert(archiveNavButton.exists)
archiveNavButton.wait().tap()
Expand All @@ -126,6 +113,18 @@ class ArchiveAnItemTests: XCTestCase {
}

func test_archivingAnItemFromHomeRecentSaves_archivesItem_andPopsBackToList() {
let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, _ -> Response in
let apiRequest = ClientAPIRequest(request)
if apiRequest.isToArchiveAnItem {
defer { expectRequest.fulfill() }
XCTAssertTrue(apiRequest.isToArchiveAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))
}
return .fallbackResponses(apiRequest: apiRequest)
}
app.launch()

let home = app.launch().homeView.wait()

let itemCell = home.recentSavesView(matching: "Item 2")
Expand All @@ -134,16 +133,6 @@ class ArchiveAnItemTests: XCTestCase {

itemCell.wait().tap()

let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, loop in
defer { expectRequest.fulfill() }
let apiRequest = ClientAPIRequest(request)
XCTAssertTrue(apiRequest.isToArchiveAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))

return Response.archive()
}

let archiveNavButton = XCUIApplication().buttons["archiveNavButton"]
XCTAssert(archiveNavButton.exists)
archiveNavButton.wait().tap()
Expand Down
103 changes: 40 additions & 63 deletions Tests iOS/DeleteAnItemTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,7 @@ class DeleteAnItemTests: XCTestCase {
app = PocketAppElement(app: uiApp)

server = Application()
server.routes.post("/graphql") { request, _ -> Response in
let apiRequest = ClientAPIRequest(request)

if apiRequest.isForSlateLineup {
return .slateLineup()
} else if apiRequest.isForSavesContent {
return .saves()
} else if apiRequest.isForArchivedContent {
return .archivedContent()
} else if apiRequest.isForTags {
return Response.emptyTags()
} else {
return Response.fallbackResponses(apiRequest: apiRequest)
}
}

try server.start()

app.launch()
}

override func tearDownWithError() throws {
Expand All @@ -43,34 +25,48 @@ class DeleteAnItemTests: XCTestCase {
}

func test_deletingAnItemFromList_removesItFromList_andSyncsWithServer() {
let deletionExpectation = expectation(description: "A delete request to the server")
server.routes.post("/graphql") { request, _ -> Response in
let apiRequest = ClientAPIRequest(request)
if apiRequest.isToDeleteAnItem {
defer { deletionExpectation.fulfill() }
XCTAssertTrue(apiRequest.contains("item-2"))
return .delete()
}

return .fallbackResponses(apiRequest: apiRequest)
}
app.launch()

app.tabBar.savesButton.wait().tap()

let itemCell = app
.saves
.itemView(matching: "Item 2")
.itemView(matching: "Item 2").wait()

itemCell
.itemActionButton.wait()
.tap()

let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, loop in
defer { expectRequest.fulfill() }
let apiRequest = ClientAPIRequest(request)
XCTAssertFalse(apiRequest.isEmpty)
XCTAssertTrue(apiRequest.isToDeleteAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))

return Response.delete()
}

app.deleteButton.wait().tap()
app.alert.yes.wait().tap()
wait(for: [expectRequest], timeout: 10)
wait(for: [deletionExpectation], timeout: 10)
waitForDisappearance(of: itemCell)
}

func test_deletingAnItemFromReader_deletesItem_andPopsBackToList() {
let deletionExpectation = expectation(description: "A delete request to the server")
server.routes.post("/graphql") { request, _ -> Response in
let apiRequest = ClientAPIRequest(request)
if apiRequest.isToDeleteAnItem {
defer { deletionExpectation.fulfill() }
XCTAssertTrue(apiRequest.contains("item-2"))
return Response.delete()
}

return Response.fallbackResponses(apiRequest: apiRequest)
}
app.launch()
app.tabBar.savesButton.wait().tap()

let itemCell = app
Expand All @@ -80,64 +76,45 @@ class DeleteAnItemTests: XCTestCase {

itemCell.tap()

let expectRequest = expectation(description: "A request to the server")
server.routes.post("/graphql") { request, loop in
defer { expectRequest.fulfill() }
let apiRequest = ClientAPIRequest(request)
XCTAssertFalse(apiRequest.isEmpty)
XCTAssertTrue(apiRequest.isToDeleteAnItem)
XCTAssertTrue(apiRequest.contains("item-2"))

return Response.delete()
}

app
.readerView
.wait()
.readerToolbar
.wait()
.moreButton
.wait()
.tap()

app.deleteButton.wait().tap()
app.alert.yes.wait().tap()
wait(for: [expectRequest], timeout: 10)
wait(for: [deletionExpectation], timeout: 10)

app.saves.wait()
waitForDisappearance(of: itemCell)
}

func test_deletingAnItem_fromArchive_removesItFromList_andSyncsWithServer() {
app.tabBar.savesButton.wait().tap()
app.saves.wait().selectionSwitcher.archiveButton.wait().tap()
let cell = app.saves.itemView(matching: "Archived Item 1")

let receivedDeleteRequest = expectation(description: "receivedDeleteRequest")
let deletionExpectation = expectation(description: "A delete request to the server")
server.routes.post("/graphql") { request, _ -> Response in
let apiRequest = ClientAPIRequest(request)

if apiRequest.isForSlateLineup {
return .slateLineup()
} else if apiRequest.isForSavesContent {
return .saves()
} else if apiRequest.isForArchivedContent {
return .archivedContent()
} else if apiRequest.isToDeleteAnItem {
receivedDeleteRequest.fulfill()
XCTAssertFalse(apiRequest.isEmpty)
XCTAssertTrue(apiRequest.isToDeleteAnItem)
if apiRequest.isToDeleteAnItem {
defer { deletionExpectation.fulfill() }
XCTAssertTrue(apiRequest.contains("archived-item-1"))

return .delete()
} else {
fatalError("Unexpected request")
}

return .fallbackResponses(apiRequest: apiRequest)
}
app.launch()
app.tabBar.savesButton.wait().tap()
app.saves.wait().selectionSwitcher.archiveButton.wait().tap()
let cell = app.saves.itemView(matching: "Archived Item 1").wait()

cell.itemActionButton.wait().tap()
app.deleteButton.wait().tap()
app.alert.yes.wait().tap()

wait(for: [receivedDeleteRequest], timeout: 10)
wait(for: [deletionExpectation], timeout: 10)
waitForDisappearance(of: cell)
}
}
4 changes: 4 additions & 0 deletions Tests iOS/Support/Response+factories.swift
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@ extension Response {
return Response.deleteUser()
} else if apiRequest.isForUserDetails {
return Response.userDetails()
} else if apiRequest.isToArchiveAnItem {
return Response.archive()
} else if apiRequest.isToSaveAnItem {
return Response.saveItem()
} else {
fatalError("Unexpected request")
}
Expand Down

0 comments on commit ccb1cdb

Please sign in to comment.