Skip to content

Commit df9e7e5

Browse files
committed
Add tests for the usage of created_via across layers
1 parent 26c1e1f commit df9e7e5

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed

Modules/Tests/NetworkingTests/Remote/OrdersRemoteTests.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,14 @@ final class OrdersRemoteTests: XCTestCase {
4848
XCTAssertFalse(fieldValues.contains(" "))
4949
}
5050

51+
func test_order_fields_parameter_includes_created_via_field() throws {
52+
// When
53+
let fieldValues = OrdersRemote.ParameterValues.fieldValues
54+
55+
// Then
56+
XCTAssertTrue(fieldValues.contains("created_via"), "fieldValues should include 'created_via' field")
57+
}
58+
5159
// MARK: - Load All Orders Tests
5260

5361
/// Verifies that loadAllOrders properly parses the `orders-load-all` sample response.

Modules/Tests/YosemiteTests/Stores/Order/OrdersUpsertUseCaseTests.swift

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,36 @@ final class OrdersUpsertUseCaseTests: XCTestCase {
151151
XCTAssertEqual(storageTaxLine.toReadOnly(), taxLine)
152152
}
153153

154+
func test_order_with_createdVia_field_when_upsert_to_storage_then_field_is_persisted_correctly() throws {
155+
// Given
156+
let order = makeOrder().copy(siteID: defaultSiteID, orderID: 123, createdVia: "pos-rest-api")
157+
let useCase = OrdersUpsertUseCase(storage: viewStorage)
158+
159+
// When
160+
useCase.upsert([order])
161+
162+
// Then
163+
let persistedOrder = try XCTUnwrap(viewStorage.loadOrder(siteID: defaultSiteID, orderID: 123))
164+
XCTAssertEqual(persistedOrder.createdVia, "pos-rest-api")
165+
XCTAssertEqual(persistedOrder.toReadOnly().createdVia, "pos-rest-api")
166+
}
167+
168+
func test_order_with_createdVia_field_when_updated_then_field_is_updated_correctly() throws {
169+
// Given
170+
let originalOrder = makeOrder().copy(siteID: defaultSiteID, orderID: 123, createdVia: nil)
171+
let useCase = OrdersUpsertUseCase(storage: viewStorage)
172+
useCase.upsert([originalOrder])
173+
174+
// When
175+
let updatedOrder = originalOrder.copy(createdVia: "pos-rest-api")
176+
useCase.upsert([updatedOrder])
177+
178+
// Then
179+
let persistedOrder = try XCTUnwrap(viewStorage.loadOrder(siteID: defaultSiteID, orderID: 123))
180+
XCTAssertEqual(persistedOrder.createdVia, "pos-rest-api")
181+
XCTAssertEqual(persistedOrder.toReadOnly().createdVia, "pos-rest-api")
182+
}
183+
154184
func test_it_persists_order_item_attributes_in_storage() throws {
155185
// Given
156186
let attributes = [

WooCommerce/WooCommerceTests/ViewRelated/Orders/OrderListCellViewModelTests.swift

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,37 @@ final class OrderListCellViewModelTests: XCTestCase {
6161
XCTAssertEqual(accessoryView.image, expectedImage)
6262
XCTAssertEqual(accessoryView.tintColor, .tertiaryLabel)
6363
}
64+
65+
func test_salesChannel_when_createdVia_is_pos_rest_api_then_returns_POS() {
66+
// Given
67+
let order = MockOrders().sampleOrder().copy(createdVia: "pos-rest-api")
68+
69+
// When
70+
let viewModel = OrderListCellViewModel(order: order, currencySettings: ServiceLocator.currencySettings)
71+
72+
// Then
73+
XCTAssertEqual(viewModel.salesChannel, "POS")
74+
}
75+
76+
func test_salesChannel_when_createdVia_is_nil_then_returns_nil() {
77+
// Given
78+
let order = MockOrders().sampleOrder().copy(createdVia: nil)
79+
80+
// When
81+
let viewModel = OrderListCellViewModel(order: order, currencySettings: ServiceLocator.currencySettings)
82+
83+
// Then
84+
XCTAssertNil(viewModel.salesChannel)
85+
}
86+
87+
func test_salesChannel_when_createdVia_is_not_pos_rest_api_then_returns_nil() {
88+
// Given
89+
let order = MockOrders().sampleOrder().copy(createdVia: "checkout")
90+
91+
// When
92+
let viewModel = OrderListCellViewModel(order: order, currencySettings: ServiceLocator.currencySettings)
93+
94+
// Then
95+
XCTAssertNil(viewModel.salesChannel)
96+
}
6497
}

0 commit comments

Comments
 (0)