Skip to content

Instantly share code, notes, and snippets.

View weAreJack's full-sized avatar
🏠
Working from home

Jack Smith weAreJack

🏠
Working from home
  • Manchester
View GitHub Profile
@weAreJack
weAreJack / LoginPresenterTests.swift
Last active October 2, 2020 12:12
DidLogInSuccessfullyCallsRouterTestExample
func testThatDidLogInSuccessfullyCallsRouterNavigateToHomeCalled() {
presenter.didLogInSuccessfully()
XCTAssertTrue(router.navigateToHomeCalled)
}
@weAreJack
weAreJack / LoginInteractorTests.swift
Last active October 2, 2020 12:12
LogInRequestCallsPresenterTestExample
func testThatPerformLogInRequestCallsPresenterDidLogInSuccessfullyOnSuccess() {
interactor.username = "Valid Username"
interactor.password = "Valid Password"
interactor.performLogInRequest()
XCTAssertTrue(presenter.didLogInSuccessfullyCalled)
}
@weAreJack
weAreJack / LoginPresenterTests.swift
Last active October 2, 2020 12:13
LogInTappedCallsInteractorTestExample
func testThatLogInTappedCallsInteractorPerformLogInRequest() {
presenter.logInTapped()
XCTAssertTrue(interactor.performLogInRequestCalled)
}
@weAreJack
weAreJack / LoginViewControllerTests.swift
Last active October 2, 2020 12:13
LogInButtonTappedTestExample
func testThatLogInButtonTappedCallsPresenterLogInTapped() {
viewController.logInButtonTapped()
XCTAssertTrue(presenter.logInTappedCalled)
}
@weAreJack
weAreJack / MockLoginPresenter.swift
Last active October 1, 2020 10:24
MockLoginPresenterExample
@testable import VIPER_Example
import Foundation
class MockLoginPresenter: LoginPresenterProtocol, LoginInteractorOutputProtocol {
// MARK: - LoginPresenterProtocol
var interactor: LoginInteractorInputProtocol?
// MARK: - Properties
@weAreJack
weAreJack / LoginProtocol.swift
Last active October 2, 2020 12:13
LoginProtocolExample
import Foundation
// MARK: - View
/// Presenter -> ViewController
protocol LoginViewProtocol: AnyObject {
var presenter: LoginPresenterProtocol? { get set }
}
// MARK: - Interactor
/// Presenter -> Interactor
@weAreJack
weAreJack / LoginModule.swift
Last active September 30, 2020 17:13
LoginModuleExample
import UIKit
class LoginModule {
func build() -> UIViewController {
let view = LoginViewController()
let router = LoginRouter()
let interactor = LoginInteractor()
let presenter = LoginPresenter(interface: view, interactor: interactor, router: router)
view.presenter = presenter