Skip to content

Commit bd7276a

Browse files
committed
Add ApplicationPasswordsExperimentAvailabilityCheckerTests
1 parent 390b735 commit bd7276a

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1233,6 +1233,7 @@
12331233
2D09E0D52E65C9B9005C26F3 /* ApplicationPasswordsExperimentStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D09E0D42E65C9B9005C26F3 /* ApplicationPasswordsExperimentStateTests.swift */; };
12341234
2D880B492DFB2F3F00A6FB2C /* OptionalBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D880B482DFB2F3D00A6FB2C /* OptionalBinding.swift */; };
12351235
2D88C1112DF883C300A6FB2C /* AttributedString+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D88C1102DF883BD00A6FB2C /* AttributedString+Helpers.swift */; };
1236+
2DA63E042E69B6D400B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DA63E032E69B6D200B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift */; };
12361237
2DB877522E25466C0001B175 /* ShippingItemRowAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DB877512E25466B0001B175 /* ShippingItemRowAccessibility.swift */; };
12371238
2DB88DA42E27DD8D0001B175 /* MarkOrderAsReadUseCase+Woo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DB88DA32E27DD790001B175 /* MarkOrderAsReadUseCase+Woo.swift */; };
12381239
2DB891662E27F0830001B175 /* Address+Shared.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DB891652E27F07E0001B175 /* Address+Shared.swift */; };
@@ -4419,6 +4420,7 @@
44194420
2D09E0D42E65C9B9005C26F3 /* ApplicationPasswordsExperimentStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordsExperimentStateTests.swift; sourceTree = "<group>"; };
44204421
2D880B482DFB2F3D00A6FB2C /* OptionalBinding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OptionalBinding.swift; sourceTree = "<group>"; };
44214422
2D88C1102DF883BD00A6FB2C /* AttributedString+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AttributedString+Helpers.swift"; sourceTree = "<group>"; };
4423+
2DA63E032E69B6D200B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordsExperimentAvailabilityCheckerTests.swift; sourceTree = "<group>"; };
44224424
2DB877512E25466B0001B175 /* ShippingItemRowAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingItemRowAccessibility.swift; sourceTree = "<group>"; };
44234425
2DB88DA32E27DD790001B175 /* MarkOrderAsReadUseCase+Woo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MarkOrderAsReadUseCase+Woo.swift"; sourceTree = "<group>"; };
44244426
2DB891652E27F07E0001B175 /* Address+Shared.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Address+Shared.swift"; sourceTree = "<group>"; };
@@ -11527,6 +11529,7 @@
1152711529
BA143222273662DE00E4B3AB /* Settings */ = {
1152811530
isa = PBXGroup;
1152911531
children = (
11532+
2DA63E032E69B6D200B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift */,
1153011533
2D09E0D42E65C9B9005C26F3 /* ApplicationPasswordsExperimentStateTests.swift */,
1153111534
023BD5892BFDCF9500A10D7B /* POS */,
1153211535
BAFEF51D273C2151005F94CC /* SettingsViewModelTests.swift */,
@@ -17327,6 +17330,7 @@
1732717330
0331A7002A334982001D2C2C /* MockInAppPurchasesForWPComPlansManager.swift in Sources */,
1732817331
02DF174B2A4A134B008FD33B /* ProductFormActionsFactory+ProductCreationTests.swift in Sources */,
1732917332
02564A88246C047C00D6DB2A /* Optional+StringTests.swift in Sources */,
17333+
2DA63E042E69B6D400B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift in Sources */,
1733017334
0269576D23726401001BA0BF /* KeyboardFrameObserverTests.swift in Sources */,
1733117335
7E6A01A12725DEDE001668D5 /* FilterProductCategoryListViewModelTests.swift in Sources */,
1733217336
02BF9BAF2851E7EA008CE2DD /* MockAppleIDCredentialChecker.swift in Sources */,
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import XCTest
2+
import Yosemite
3+
@testable import WooCommerce
4+
5+
final class ApplicationPasswordsExperimentAvailabilityCheckerTests: XCTestCase {
6+
private var availabilityChecker: ApplicationPasswordsExperimentAvailabilityCheckerProtocol!
7+
private var stores: StoresManager!
8+
private var userDefaults: UserDefaults!
9+
10+
override func tearDown() {
11+
availabilityChecker = nil
12+
stores = nil
13+
userDefaults = nil
14+
super.tearDown()
15+
}
16+
17+
private func setupEnvironment(
18+
isWPComAuthenticated: Bool,
19+
isRemoteFFEnabled: Bool
20+
) throws {
21+
stores = MockStoresManager(
22+
sessionManager: .makeForTesting(
23+
authenticated: true,
24+
isWPCom: isWPComAuthenticated
25+
)
26+
)
27+
28+
userDefaults = try XCTUnwrap(UserDefaults(suiteName: "TestingSuite"))
29+
userDefaults[.applicationPasswordsExperimentRemoteFFValue] = isRemoteFFEnabled
30+
31+
availabilityChecker = ApplicationPasswordsExperimentAvailabilityChecker(
32+
userDefaults: userDefaults,
33+
stores: stores
34+
)
35+
}
36+
37+
func test_when_wpcom_authenticated_and_remote_ff_enabled_then_isAvailable_returns_true() throws {
38+
try setupEnvironment(isWPComAuthenticated: true, isRemoteFFEnabled: true)
39+
XCTAssertTrue(availabilityChecker.isAvailable)
40+
}
41+
42+
func test_when_wpcom_authenticated_and_remote_ff_disabled_then_isAvailable_returns_false() throws {
43+
try setupEnvironment(isWPComAuthenticated: true, isRemoteFFEnabled: false)
44+
XCTAssertFalse(availabilityChecker.isAvailable)
45+
}
46+
47+
func test_when_not_wpcom_authenticated_and_remote_ff_enabled_then_isAvailable_returns_false() throws {
48+
try setupEnvironment(isWPComAuthenticated: false, isRemoteFFEnabled: true)
49+
XCTAssertFalse(availabilityChecker.isAvailable)
50+
}
51+
52+
func test_when_not_wpcom_authenticated_and_remote_ff_disabled_then_isAvailable_returns_false() throws {
53+
try setupEnvironment(isWPComAuthenticated: false, isRemoteFFEnabled: false)
54+
XCTAssertFalse(availabilityChecker.isAvailable)
55+
}
56+
}

0 commit comments

Comments
 (0)