Skip to content

Commit b24417c

Browse files
committed
Fix tests
1 parent 2387bd9 commit b24417c

File tree

4 files changed

+44
-26
lines changed

4 files changed

+44
-26
lines changed

AuthenticatorTests/RootTests.swift

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,14 @@ import XCTest
2727
@testable import Authenticator
2828

2929
class RootTests: XCTestCase {
30+
private let defaultDigitGroupSize = 2
3031
let displayTime = DisplayTime(date: Date())
3132

3233
func testShowBackupInfo() {
3334
var root = Root(deviceCanScan: false)
3435

3536
// Ensure there is no modal visible.
36-
let (firstViewModel, _) = root.viewModel(with: [], at: displayTime)
37+
let (firstViewModel, _) = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize)
3738
guard case .none = firstViewModel.modal else {
3839
XCTFail("Expected .none, got \(firstViewModel.modal)")
3940
return
@@ -51,12 +52,17 @@ class RootTests: XCTestCase {
5152
XCTAssertNil(showEffect)
5253

5354
// Ensure the backup info modal is visible.
54-
let (secondViewModel, _) = root.viewModel(with: [], at: displayTime)
55+
let (secondViewModel, _) = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize)
5556
switch secondViewModel.modal {
56-
case .info(_, .some(let infoViewModel)):
57-
XCTAssert(infoViewModel.title == "Backups")
57+
case .menu(let menu):
58+
switch menu.child {
59+
case .info(let infoViewModel):
60+
XCTAssert(infoViewModel.title == "Backups")
61+
default:
62+
XCTFail("Expected Backups .info, got \(menu.child)")
63+
}
5864
default:
59-
XCTFail("Expected Backups .info, got \(secondViewModel.modal)")
65+
XCTFail("Expected .menu, got \(secondViewModel.modal)")
6066
}
6167

6268
// Hide the backup info.
@@ -71,7 +77,7 @@ class RootTests: XCTestCase {
7177
XCTAssertNil(hideEffect)
7278

7379
// Ensure the backup info modal no longer visible.
74-
let (thirdViewModel, _) = root.viewModel(with: [], at: displayTime)
80+
let (thirdViewModel, _) = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize)
7581
guard case .none = thirdViewModel.modal else {
7682
XCTFail("Expected .none, got \(thirdViewModel.modal)")
7783
return
@@ -82,7 +88,7 @@ class RootTests: XCTestCase {
8288
var root = Root(deviceCanScan: false)
8389

8490
// Ensure there is no modal visible.
85-
let (firstViewModel, _) = root.viewModel(with: [], at: displayTime)
91+
let (firstViewModel, _) = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize)
8692
guard case .none = firstViewModel.modal else {
8793
XCTFail("Expected .none, got \(firstViewModel.modal)")
8894
return
@@ -100,8 +106,8 @@ class RootTests: XCTestCase {
100106
XCTAssertNil(showInfoEffect)
101107

102108
// Ensure the info list modal is visible.
103-
let (nextViewModel, _) = root.viewModel(with: [], at: displayTime)
104-
guard case .info(_, .none) = nextViewModel.modal else {
109+
let (nextViewModel, _) = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize)
110+
guard case .menu(let menu) = nextViewModel.modal, case .none = menu.child else {
105111
XCTFail("Expected .info list, got \(nextViewModel.modal)")
106112
return
107113
}
@@ -118,12 +124,17 @@ class RootTests: XCTestCase {
118124
XCTAssertNil(showEffect)
119125

120126
// Ensure the license info modal is visible.
121-
let (secondViewModel, _) = root.viewModel(with: [], at: displayTime)
127+
let (secondViewModel, _) = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize)
122128
switch secondViewModel.modal {
123-
case .info(_, .some(let infoViewModel)):
124-
XCTAssert(infoViewModel.title == "Acknowledgements")
129+
case .menu(let menu):
130+
switch menu.child {
131+
case .info(let infoViewModel):
132+
XCTAssert(infoViewModel.title == "Acknowledgements")
133+
default:
134+
XCTFail("Expected Acknowledgements .info, got \(menu.child)")
135+
}
125136
default:
126-
XCTFail("Expected Acknowledgements .info, got \(secondViewModel.modal)")
137+
XCTFail("Expected .menu, got \(secondViewModel.modal)")
127138
}
128139

129140
// Hide the license info.
@@ -138,7 +149,7 @@ class RootTests: XCTestCase {
138149
XCTAssertNil(hideEffect)
139150

140151
// Ensure the license info modal no longer visible.
141-
let (thirdViewModel, _) = root.viewModel(with: [], at: displayTime)
152+
let (thirdViewModel, _) = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize)
142153
guard case .none = thirdViewModel.modal else {
143154
XCTFail("Expected .none, got \(thirdViewModel.modal)")
144155
return
@@ -194,7 +205,7 @@ class RootTests: XCTestCase {
194205
var root = Root(deviceCanScan: false)
195206

196207
// Ensure the initial view model has no modal.
197-
guard case .none = root.viewModel(with: [], at: displayTime).viewModel.modal else {
208+
guard case .none = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize).viewModel.modal else {
198209
XCTFail("The initial view model should have no modal.")
199210
return
200211
}
@@ -208,7 +219,7 @@ class RootTests: XCTestCase {
208219
}
209220

210221
// Ensure the view model now has a modal entry form.
211-
guard case .entryForm = root.viewModel(with: [], at: displayTime).viewModel.modal else {
222+
guard case .entryForm = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize).viewModel.modal else {
212223
XCTFail("The view model should have a modal entry form.")
213224
return
214225
}
@@ -218,7 +229,7 @@ class RootTests: XCTestCase {
218229
XCTAssertNil(effect)
219230

220231
// Ensure the token entry form hides on success.
221-
guard case .none = root.viewModel(with: [], at: displayTime).viewModel.modal else {
232+
guard case .none = root.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize).viewModel.modal else {
222233
XCTFail("The final view model should have no modal.")
223234
return
224235
}

AuthenticatorTests/TableDiffTests.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import XCTest
2828
@testable import Authenticator
2929

3030
class TableDiffTests: XCTestCase {
31+
private let defaultDigitGroupSize = 2
32+
3133
func testNoChanges() {
3234
// swiftlint:disable force_unwrapping
3335
let generator = Generator(factor: .timer(period: 60),
@@ -44,13 +46,15 @@ class TableDiffTests: XCTestCase {
4446
let before = [
4547
TokenRowModel(
4648
persistentToken: persistentToken,
47-
displayTime: DisplayTime(date: date)
49+
displayTime: DisplayTime(date: date),
50+
digitGroupSize: defaultDigitGroupSize
4851
),
4952
]
5053
let after = [
5154
TokenRowModel(
5255
persistentToken: persistentToken,
53-
displayTime: DisplayTime(date: date)
56+
displayTime: DisplayTime(date: date),
57+
digitGroupSize: defaultDigitGroupSize
5458
),
5559
]
5660

AuthenticatorTests/TokenListTests.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import XCTest
2828
@testable import Authenticator
2929

3030
class TokenListTests: XCTestCase {
31+
private let defaultDigitGroupSize = 2
3132
let displayTime = DisplayTime(date: Date())
3233

3334
func testFilterByIssuerAndName() {
@@ -39,7 +40,7 @@ class TokenListTests: XCTestCase {
3940
])
4041
let effect = tokenList.update(with: .filter("goo"))
4142

42-
let (viewModel, _) = tokenList.viewModel(with: persistentTokens, at: displayTime)
43+
let (viewModel, _) = tokenList.viewModel(with: persistentTokens, at: displayTime, digitGroupSize: defaultDigitGroupSize)
4344
let filteredIssuers = viewModel.rowModels.map { $0.issuer }
4445

4546
XCTAssertNil(effect)
@@ -56,7 +57,7 @@ class TokenListTests: XCTestCase {
5657
("Service", "username"),
5758
])
5859
let effect = tokenList.update(with: .filter("Service"))
59-
let (viewModel, _) = tokenList.viewModel(with: persistentTokens, at: displayTime)
60+
let (viewModel, _) = tokenList.viewModel(with: persistentTokens, at: displayTime, digitGroupSize: defaultDigitGroupSize)
6061

6162
XCTAssertNil(effect)
6263
XCTAssertTrue(viewModel.isFiltering)

AuthenticatorTests/TokenListViewControllerTest.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import OneTimePassword
2828
@testable import Authenticator
2929

3030
class TokenListViewControllerTest: XCTestCase {
31+
private let defaultDigitGroupSize = 2
32+
3133
let tokenList = TokenList()
3234
let displayTime = DisplayTime(date: Date())
3335

@@ -38,7 +40,7 @@ class TokenListViewControllerTest: XCTestCase {
3840
}()
3941

4042
func emptyListViewModel() -> TokenList.ViewModel {
41-
return tokenList.viewModel(with: [], at: displayTime).viewModel
43+
return tokenList.viewModel(with: [], at: displayTime, digitGroupSize: defaultDigitGroupSize).viewModel
4244
}
4345

4446
// Test that inserting a new token will produce the expected changes to the table view.
@@ -53,7 +55,7 @@ class TokenListViewControllerTest: XCTestCase {
5355
let persistentTokens = mockPersistentTokens([
5456
("Service", "email@example.com"),
5557
])
56-
let (updatedViewModel, _) = tokenList.viewModel(with: persistentTokens, at: displayTime)
58+
let (updatedViewModel, _) = tokenList.viewModel(with: persistentTokens, at: displayTime, digitGroupSize: defaultDigitGroupSize)
5759
controller.update(with: updatedViewModel)
5860

5961
// Check the table view.
@@ -70,7 +72,7 @@ class TokenListViewControllerTest: XCTestCase {
7072
func testUpdatesExistingToken() {
7173
// Set up a view controller with a mock table view.
7274
let initialPersistentToken = mockPersistentToken(name: "account@example.com", issuer: "Issuer")
73-
let (initialTokenListViewModel, _) = tokenList.viewModel(with: [initialPersistentToken], at: displayTime)
75+
let (initialTokenListViewModel, _) = tokenList.viewModel(with: [initialPersistentToken], at: displayTime, digitGroupSize: defaultDigitGroupSize)
7476
let controller = TokenListViewController(viewModel: initialTokenListViewModel, dispatchAction: { _ in })
7577
let tableView = MockTableView()
7678
controller.tableView = tableView
@@ -80,7 +82,7 @@ class TokenListViewControllerTest: XCTestCase {
8082

8183
// Update the view controller.
8284
let updatedPersistentToken = initialPersistentToken.updated(with: mockToken(name: "name", issuer: "issuer"))
83-
let (updatedTokenListViewModel, _) = tokenList.viewModel(with: [updatedPersistentToken], at: displayTime)
85+
let (updatedTokenListViewModel, _) = tokenList.viewModel(with: [updatedPersistentToken], at: displayTime, digitGroupSize: defaultDigitGroupSize)
8486
controller.update(with: updatedTokenListViewModel)
8587

8688
// Check the changes to the table view.
@@ -102,7 +104,7 @@ class TokenListViewControllerTest: XCTestCase {
102104
("Service", "example@google.com"),
103105
("Service", "username"),
104106
])
105-
let (viewModel, _) = tokenList.viewModel(with: persistentTokens, at: displayTime)
107+
let (viewModel, _) = tokenList.viewModel(with: persistentTokens, at: displayTime, digitGroupSize: defaultDigitGroupSize)
106108
let controller = TokenListViewController(viewModel: viewModel, dispatchAction: { _ in })
107109

108110
// Check that the table view contains the expected cells.

0 commit comments

Comments
 (0)