//
//  NonaTemplateUITests.swift
//  NonaTemplateUITests
//
//  Created by Jonathan Arnold on 2021/09/10.
//

import XCTest

class NonaTemplateUITests: XCTestCase {

    override func setUpWithError() throws {
        // Put setup code here. This method is called before the invocation of each test method in the class.

        // In UI tests it is usually best to stop immediately when a failure occurs.
        continueAfterFailure = false

        // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
    }

    override func tearDownWithError() throws {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
    }

    func testScreenshots() throws {
      // UI tests must launch the application that they test.
      let app = XCUIApplication()
      setupSnapshot(app)
      app.launch()
      let homeButtonVisible = app.otherElements["nextButton"].waitForExistence(timeout: 20)
      if(homeButtonVisible) {
        snapshot("00HomeScreen")
        app.otherElements["nextButton"].tap()
        let secondScreenButtonVisible = app.otherElements["secondScreenButton"].waitForExistence(timeout: 20)
        if(secondScreenButtonVisible) {
          snapshot("01SecondScreen")
        }
      }
      // Use recording to get started writing UI tests.
      // Use XCTAssert and related functions to verify your tests produce the correct results.
    }

    func testLaunchPerformance() throws {
        if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) {
            // This measures how long it takes to launch your application.
            measure(metrics: [XCTApplicationLaunchMetric()]) {
                XCUIApplication().launch()
            }
        }
    }
}
