-
Notifications
You must be signed in to change notification settings - Fork 121
[Woo POS][Historical Orders] Order List Search UI and Functionality (Wireframe UI) #16089
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 12 commits
1bee472
832f324
5111343
e471f43
81da17b
7d0bc3d
d11d96f
da3f7b4
56221f8
e19c8c9
018651d
3ff9873
99e0825
9034d8b
b129e7c
c07807f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -916,6 +916,56 @@ final class OrdersRemoteTests: XCTestCase { | |
| "value": cashPaymentChangeDueAmount]] | ||
| assertEqual(received, expected) | ||
| } | ||
|
|
||
| func test_searchPOSOrders_properly_returns_parsed_orders() async throws { | ||
| // Given | ||
| let remote = OrdersRemote(network: network) | ||
| network.simulateResponse(requestUrlSuffix: "orders", filename: "orders-load-all") | ||
|
|
||
| // When | ||
| let result = try await remote.searchPOSOrders(siteID: sampleSiteID, searchTerm: "test", pageNumber: 1, pageSize: 25) | ||
|
|
||
| // Then | ||
| XCTAssert(result.items.count == 4) | ||
|
||
| XCTAssertEqual(result.hasMorePages, false) | ||
| } | ||
|
|
||
| func test_searchPOSOrders_sends_correct_parameters() async throws { | ||
| // Given | ||
| let remote = OrdersRemote(network: network) | ||
| let searchTerm = "test search" | ||
| let pageNumber = 2 | ||
| let pageSize = 10 | ||
|
|
||
| // When | ||
| _ = try? await remote.searchPOSOrders(siteID: sampleSiteID, searchTerm: searchTerm, pageNumber: pageNumber, pageSize: pageSize) | ||
|
|
||
| // Then | ||
| let request = try XCTUnwrap(network.requestsForResponseData.last as? JetpackRequest) | ||
| let parameters = request.parameters | ||
|
|
||
| XCTAssertEqual(parameters["search"] as? String, searchTerm) | ||
| XCTAssertEqual(parameters["page"] as? String, String(pageNumber)) | ||
| XCTAssertEqual(parameters["per_page"] as? String, String(pageSize)) | ||
| XCTAssertEqual(parameters["status"] as? String, "any") | ||
| XCTAssertEqual(parameters["created_via"] as? String, "pos-rest-api") | ||
| XCTAssertEqual(parameters["dates_are_gmt"] as? Bool, true) | ||
| XCTAssertNotNil(parameters["_fields"] as? String) | ||
| } | ||
|
|
||
| func test_searchPOSOrders_properly_relays_networking_error() async throws { | ||
| // Given | ||
| let remote = OrdersRemote(network: network) | ||
|
|
||
| do { | ||
| // When | ||
| _ = try await remote.searchPOSOrders(siteID: sampleSiteID, searchTerm: "test", pageNumber: 1, pageSize: 25) | ||
| XCTFail("Expected error to be thrown") | ||
| } catch { | ||
| // Then | ||
| XCTAssertEqual(error as? NetworkError, .notFound(response: nil)) | ||
| } | ||
| } | ||
| } | ||
|
|
||
| private extension OrdersRemoteTests { | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have/want access to
totalItemshere? I have not tested this much, but consider using the the PagedItems method that parses the responseHeaders as well, ie:There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I'll check it out!