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

  }

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

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


@testable import Library

final class LoginToutViewModelTests: XCTestCase {
  let trackingClient = MockTrackingClient()
  var vm: LoginToutViewModelType!

  override func setUp() {
    super.setUp()

    let koala = Koala(client: trackingClient)

    AppEnvironment.pushEnvironment(koala: koala)

    vm = LoginToutViewModel()

  }

  override func tearDown() {
    super.tearDown()

    AppEnvironment.popEnvironment()
  }

  func testKoala_whenLoginIntentBeforeViewAppears() {
    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() {
    vm.inputs.viewDidAppear()
    vm.inputs.loginIntent(LoginIntent.Activity)

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

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

