Skip to content

Commit 198b06f

Browse files
committed
Add edit flow tests
1 parent a86c1e4 commit 198b06f

File tree

2 files changed

+56
-4
lines changed

2 files changed

+56
-4
lines changed

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1289,7 +1289,7 @@
12891289
CC8413E423F5C48E00EFC277 /* stop.sh in Resources */ = {isa = PBXBuildFile; fileRef = CCFC011123E9E40B00157A78 /* stop.sh */; };
12901290
CC8413E523F5C49100EFC277 /* start.sh in Resources */ = {isa = PBXBuildFile; fileRef = CCFC011023E9E3F400157A78 /* start.sh */; };
12911291
CC923A1D2847A8E0008EEEBE /* OrderStatusListViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC923A1C2847A8E0008EEEBE /* OrderStatusListViewModelTests.swift */; };
1292-
CCB366AF274518EC007D437A /* NewOrderViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCB366AE274518EC007D437A /* NewOrderViewModelTests.swift */; };
1292+
CCB366AF274518EC007D437A /* EditableOrderViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCB366AE274518EC007D437A /* EditableOrderViewModelTests.swift */; };
12931293
CCC284112768C18500F6CC8B /* ProductInOrder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCC284102768C18500F6CC8B /* ProductInOrder.swift */; };
12941294
CCCC29DD25E5757C0046B96F /* RenameAttributesViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = CCCC29DC25E5757C0046B96F /* RenameAttributesViewController.xib */; };
12951295
CCCC29E325E576810046B96F /* RenameAttributesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCCC29E225E576810046B96F /* RenameAttributesViewController.swift */; };
@@ -3058,7 +3058,7 @@
30583058
CC770C8927B1497700CE6ABC /* SearchHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchHeader.swift; sourceTree = "<group>"; };
30593059
CC77488D2719A07D0043CDD7 /* ShippingLabelAddressTopBannerFactoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLabelAddressTopBannerFactoryTests.swift; sourceTree = "<group>"; };
30603060
CC923A1C2847A8E0008EEEBE /* OrderStatusListViewModelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderStatusListViewModelTests.swift; sourceTree = "<group>"; };
3061-
CCB366AE274518EC007D437A /* NewOrderViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewOrderViewModelTests.swift; sourceTree = "<group>"; };
3061+
CCB366AE274518EC007D437A /* EditableOrderViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditableOrderViewModelTests.swift; sourceTree = "<group>"; };
30623062
CCC284102768C18500F6CC8B /* ProductInOrder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductInOrder.swift; sourceTree = "<group>"; };
30633063
CCCC29DC25E5757C0046B96F /* RenameAttributesViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RenameAttributesViewController.xib; sourceTree = "<group>"; };
30643064
CCCC29E225E576810046B96F /* RenameAttributesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RenameAttributesViewController.swift; sourceTree = "<group>"; };
@@ -6721,7 +6721,7 @@
67216721
CCB366AD274518CD007D437A /* Order Creation */ = {
67226722
isa = PBXGroup;
67236723
children = (
6724-
CCB366AE274518EC007D437A /* NewOrderViewModelTests.swift */,
6724+
CCB366AE274518EC007D437A /* EditableOrderViewModelTests.swift */,
67256725
AEA622B627468790002A9B57 /* AddOrderCoordinatorTests.swift */,
67266726
CC53FB3D2758E2D500C4CA4F /* ProductRowViewModelTests.swift */,
67276727
CC53FB3F2759042600C4CA4F /* ProductSelectorViewModelTests.swift */,
@@ -9963,7 +9963,7 @@
99639963
03CF78D127C3DBC000523706 /* WCPayCardBrand+IconsTests.swift in Sources */,
99649964
4535EE82281BE726004212B4 /* CouponCodeInputFormatterTests.swift in Sources */,
99659965
023EC2E424DA95DB0021DA91 /* ProductInventorySettingsViewModel+VariationTests.swift in Sources */,
9966-
CCB366AF274518EC007D437A /* NewOrderViewModelTests.swift in Sources */,
9966+
CCB366AF274518EC007D437A /* EditableOrderViewModelTests.swift in Sources */,
99679967
020BE76B23B4A380007FE54C /* AztecUnderlineFormatBarCommandTests.swift in Sources */,
99689968
D83F5937225B402E00626E75 /* TitleAndEditableValueTableViewCellTests.swift in Sources */,
99699969
773077F3251E954300178696 /* ProductDownloadFileViewModelTests.swift in Sources */,

WooCommerce/WooCommerceTests/ViewRelated/Orders/Order Creation/NewOrderViewModelTests.swift renamed to WooCommerce/WooCommerceTests/ViewRelated/Orders/Order Creation/EditableOrderViewModelTests.swift

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,24 @@ final class EditableOrderViewModelTests: XCTestCase {
1717
let viewModel = EditableOrderViewModel(siteID: sampleSiteID, stores: stores)
1818

1919
// Then
20+
XCTAssertEqual(viewModel.flow, .creation)
2021
XCTAssertEqual(viewModel.navigationTrailingItem, .create)
2122
XCTAssertEqual(viewModel.statusBadgeViewModel.title, "pending")
2223
XCTAssertEqual(viewModel.productRows.count, 0)
2324
}
2425

26+
func test_edition_view_model_inits_with_expected_values() {
27+
// Given
28+
let order = Order.fake().copy(orderID: sampleOrderID)
29+
let stores = MockStoresManager(sessionManager: .testingInstance)
30+
31+
// When
32+
let viewModel = EditableOrderViewModel(siteID: sampleSiteID, flow: .editing(initialOrder: order), stores: stores)
33+
34+
// Then
35+
XCTAssertEqual(viewModel.flow, .editing(initialOrder: order))
36+
}
37+
2538
func test_edition_view_model_has_a_navigation_done_button() {
2639
// Given
2740
let stores = MockStoresManager(sessionManager: .testingInstance)
@@ -1064,6 +1077,45 @@ final class EditableOrderViewModelTests: XCTestCase {
10641077
// Then
10651078
XCTAssertTrue(viewModel.canBeDismissed)
10661079
}
1080+
1081+
func test_onFinished_is_called_when_creating_order() {
1082+
// Given
1083+
let stores = MockStoresManager(sessionManager: .testingInstance)
1084+
var isCallbackCalled = false
1085+
let viewModel = EditableOrderViewModel(siteID: sampleSiteID, flow: .creation, stores: stores)
1086+
viewModel.onFinished = { _ in
1087+
isCallbackCalled = true
1088+
}
1089+
1090+
// When
1091+
stores.whenReceivingAction(ofType: OrderAction.self) { action in
1092+
switch action {
1093+
case let .createOrder(_, order, onCompletion):
1094+
onCompletion(.success(order))
1095+
default:
1096+
XCTFail("Received unsupported action: \(action)")
1097+
}
1098+
}
1099+
viewModel.createOrder()
1100+
1101+
// Then
1102+
XCTAssertTrue(isCallbackCalled)
1103+
}
1104+
1105+
func test_onFinished_is_called_when_editing_order() {
1106+
// Given
1107+
var isCallbackCalled = false
1108+
let viewModel = EditableOrderViewModel(siteID: sampleSiteID, flow: .editing(initialOrder: .fake()))
1109+
viewModel.onFinished = { _ in
1110+
isCallbackCalled = true
1111+
}
1112+
1113+
// When
1114+
viewModel.finishEditing()
1115+
1116+
// Then
1117+
XCTAssertTrue(isCallbackCalled)
1118+
}
10671119
}
10681120

10691121
private extension MockStorageManager {

0 commit comments

Comments
 (0)