PR changes on loading tests. DRY helper

This commit is contained in:
Francisco Gindre 2021-09-22 11:58:09 -03:00
parent ef2eed4044
commit 4f9c2adb6d
1 changed files with 19 additions and 19 deletions

View File

@ -167,12 +167,9 @@ class LoadingScreenTests: XCTestCase {
// MARK: LoadingScreen View Tests
func testProceedToHomeIsCalledWhenCredentialsAreFound() throws {
let mockServices = MockServices()
let stub = KeysPresentStub(returnBlock: {
let loadingViewModel = LoadingScreenViewModelHelper.loadingViewModelWith {
true
})
mockServices.keyStorage = stub
let loadingViewModel = LoadingScreenViewModel(services: mockServices)
}
let spyRouter = LoadingScreenRouterSpy(fulfillment: {
})
@ -182,12 +179,9 @@ class LoadingScreenTests: XCTestCase {
}
func testProceedToWelcomeIsCalledWhenCredentialsAreNotFound() throws {
let mockServices = MockServices()
let stub = KeysPresentStub(returnBlock: {
let loadingViewModel = LoadingScreenViewModelHelper.loadingViewModelWith {
false
})
mockServices.keyStorage = stub
let loadingViewModel = LoadingScreenViewModel(services: mockServices)
}
let spyRouter = LoadingScreenRouterSpy(fulfillment: {
})
@ -197,12 +191,9 @@ class LoadingScreenTests: XCTestCase {
}
func testFailWithErrorIsCalledWhenKeyStoringFails() throws {
let mockServices = MockServices()
let stub = KeysPresentStub(returnBlock: {
let loadingViewModel = LoadingScreenViewModelHelper.loadingViewModelWith {
throw KeyStoringError.alreadyImported
})
mockServices.keyStorage = stub
let loadingViewModel = LoadingScreenViewModel(services: mockServices)
}
let spyRouter = LoadingScreenRouterSpy(fulfillment: {
})
@ -213,15 +204,15 @@ class LoadingScreenTests: XCTestCase {
}
class LoadingScreenRouterSpy: LoadingScreenRouter {
init(fulfillment: @escaping () -> Void) {
self.fulfillmentBlock = fulfillment
}
var fulfillmentBlock: () -> Void
var proceedToHomeCalled = false
var failWithErrorCalled = false
var proceedToWelcomeCalled = false
init(fulfillment: @escaping () -> Void) {
self.fulfillmentBlock = fulfillment
}
func proceedToHome() {
proceedToHomeCalled = true
fulfillmentBlock()
@ -237,3 +228,12 @@ class LoadingScreenRouterSpy: LoadingScreenRouter {
fulfillmentBlock()
}
}
enum LoadingScreenViewModelHelper {
static func loadingViewModelWith(keysPresentStubBlock: @escaping () throws -> Bool) -> LoadingScreenViewModel {
let mockServices = MockServices()
let stub = KeysPresentStub(returnBlock: keysPresentStubBlock)
mockServices.keyStorage = stub
return LoadingScreenViewModel(services: mockServices)
}
}