   }
 
   func testStartSignup() {
-    let vm: LoginToutViewModelType = LoginToutViewModel()
-
     let startSignup = TestObserver<(), NoError>()
     vm.outputs.startSignup.observe(startSignup.observer)
 

@testable import Library

final class LoginToutViewModelTests: XCTestCase {

  func testKoala_whenLoginIntentBeforeViewAppears() {
    let trackingClient = MockTrackingClient()
    let koala = Koala(client: trackingClient)

    withEnvironment(koala: koala) {
      let vm: LoginToutViewModelType = LoginToutViewModel()

      vm.inputs.loginIntent(LoginIntent.Activity)
      vm.inputs.viewDidAppear()

      XCTAssertEqual(["Application Login or Signup"], trackingClient.events)

      vm.inputs.viewDidAppear()

      XCTAssertEqual(["Application Login or Signup"], trackingClient.events)
    }
  }

  func testKoala_whenViewAppearsBeforeLoginIntent() {
    let trackingClient = MockTrackingClient()
    let koala = Koala(client: trackingClient)

    withEnvironment(koala: koala) {
      let vm: LoginToutViewModelType = LoginToutViewModel()

      vm.inputs.viewDidAppear()
      vm.inputs.loginIntent(LoginIntent.Activity)

      XCTAssertEqual(["Application Login or Signup"], trackingClient.events)
    }
  }

  func testStartLogin() {
    let vm: LoginToutViewModelType = LoginToutViewModel()

    let startLogin = TestObserver<(), NoError>()
    vm.outputs.startLogin.observe(startLogin.observer)


  }

  func testShowHelpType() {
    let showHelp = TestObserver<HelpType, NoError>()
    vm.outputs.showHelp.observe(showHelp.observer)

