Skip to content

Commit b008f92

Browse files
committed
Add unit tests for CouponAllowedEmailsViewModel
1 parent 100302d commit b008f92

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1568,6 +1568,7 @@
15681568
DE279BAD26E9CBEA002BA963 /* ShippingLabelPackagesFormViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE279BAC26E9CBEA002BA963 /* ShippingLabelPackagesFormViewModelTests.swift */; };
15691569
DE279BAF26EA03EA002BA963 /* ShippingLabelSinglePackageViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE279BAE26EA03EA002BA963 /* ShippingLabelSinglePackageViewModelTests.swift */; };
15701570
DE279BB126EA184A002BA963 /* ShippingLabelPackageListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE279BB026EA184A002BA963 /* ShippingLabelPackageListViewModel.swift */; };
1571+
DE2BF4FD2846192B00FBE68A /* CouponAllowedEmailsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE2BF4FC2846192B00FBE68A /* CouponAllowedEmailsViewModelTests.swift */; };
15711572
DE34771327F174C8009CA300 /* StatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE34771227F174C8009CA300 /* StatusView.swift */; };
15721573
DE3877E0283B68CF0075D87E /* DiscountTypeBottomSheetListSelectorCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE3877DF283B68CF0075D87E /* DiscountTypeBottomSheetListSelectorCommand.swift */; };
15731574
DE3877E2283CCBC20075D87E /* BottomSheetListSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE3877E1283CCBC20075D87E /* BottomSheetListSelector.swift */; };
@@ -3320,6 +3321,7 @@
33203321
DE279BAC26E9CBEA002BA963 /* ShippingLabelPackagesFormViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLabelPackagesFormViewModelTests.swift; sourceTree = "<group>"; };
33213322
DE279BAE26EA03EA002BA963 /* ShippingLabelSinglePackageViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLabelSinglePackageViewModelTests.swift; sourceTree = "<group>"; };
33223323
DE279BB026EA184A002BA963 /* ShippingLabelPackageListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingLabelPackageListViewModel.swift; sourceTree = "<group>"; };
3324+
DE2BF4FC2846192B00FBE68A /* CouponAllowedEmailsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponAllowedEmailsViewModelTests.swift; sourceTree = "<group>"; };
33233325
DE34771227F174C8009CA300 /* StatusView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusView.swift; sourceTree = "<group>"; };
33243326
DE3877DF283B68CF0075D87E /* DiscountTypeBottomSheetListSelectorCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiscountTypeBottomSheetListSelectorCommand.swift; sourceTree = "<group>"; };
33253327
DE3877E1283CCBC20075D87E /* BottomSheetListSelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetListSelector.swift; sourceTree = "<group>"; };
@@ -4514,6 +4516,7 @@
45144516
4535EE7F281BE4E0004212B4 /* CouponAmountInputFormatterTests.swift */,
45154517
4535EE81281BE726004212B4 /* CouponCodeInputFormatterTests.swift */,
45164518
DE3877E3283E35E80075D87E /* DiscountTypeBottomSheetListSelectorCommandTests.swift */,
4519+
DE2BF4FC2846192B00FBE68A /* CouponAllowedEmailsViewModelTests.swift */,
45174520
);
45184521
path = Coupons;
45194522
sourceTree = "<group>";
@@ -9698,6 +9701,7 @@
96989701
E17E3BF9266917C10009D977 /* CardPresentModalScanningFailedTests.swift in Sources */,
96999702
269098B627D2C09D001FEB07 /* ShippingInputTransformerTests.swift in Sources */,
97009703
02BA128B24616B48008D8325 /* ProductFormActionsFactory+VisibilityTests.swift in Sources */,
9704+
DE2BF4FD2846192B00FBE68A /* CouponAllowedEmailsViewModelTests.swift in Sources */,
97019705
FEEB2F6E268A2F7B0075A6E0 /* RoleEligibilityUseCaseTests.swift in Sources */,
97029706
31E906A326CC91A70099A985 /* CardReaderConnectionControllerTests.swift in Sources */,
97039707
02AB40822784297C00929CF3 /* ProductTableViewCellViewModelTests.swift in Sources */,
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import XCTest
2+
@testable import WooCommerce
3+
4+
final class CouponAllowedEmailsViewModelTests: XCTestCase {
5+
6+
func test_completion_block_is_triggered_when_address_validation_succeeds() {
7+
// Given
8+
var savedAddresses: String?
9+
let completionBlock: (String) -> Void = { email in
10+
savedAddresses = email
11+
}
12+
let viewModel = CouponAllowedEmailsViewModel(allowedEmails: "", onCompletion: completionBlock)
13+
14+
// When
15+
viewModel.emailPatterns = "*@mail.com"
16+
viewModel.validateEmails {}
17+
18+
// Then
19+
XCTAssertEqual(savedAddresses, "*@mail.com")
20+
XCTAssertNil(viewModel.notice)
21+
}
22+
23+
func test_completion_block_is_not_triggered_and_notice_is_not_nil_when_address_validation_fails() {
24+
var savedAddresses: String?
25+
let completionBlock: (String) -> Void = { email in
26+
savedAddresses = email
27+
}
28+
let viewModel = CouponAllowedEmailsViewModel(allowedEmails: "", onCompletion: completionBlock)
29+
30+
// When
31+
viewModel.emailPatterns = "*@mail"
32+
viewModel.validateEmails {}
33+
34+
// Then
35+
XCTAssertNil(savedAddresses)
36+
XCTAssertNotNil(viewModel.notice)
37+
}
38+
}

0 commit comments

Comments
 (0)