view SimoleonScreenshots/SimoleonScreenshots.swift @ 139:a4aeca1ad34a

Fix random test crashes with Fastlane
author Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
date Mon, 16 Aug 2021 20:59:21 +0100
parents f54d3dabb2d3
children 4271fb5f69e2
line wrap: on
line source

//
//  SimoleonScreenshots.swift
//  SimoleonScreenshots
//
//  Created by Dennis Concepción Martín on 5/8/21.
//

import XCTest
import CoreData
// Automate screenshots with Fastlane
class SimoleonScreenshots: XCTestCase {
    var screenshotEndingName = ""

    override func setUpWithError() throws {
        // This method is called before the invocation of each test method in the class.
        
        if UIDevice.current.userInterfaceIdiom == .pad {
            XCUIDevice.shared.orientation = .landscapeLeft
            screenshotEndingName = "-force_landscapeleft"
        }
        
        let app = XCUIApplication()
        setupSnapshot(app)
        app.launch()

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

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

    func testLaunchScreenshot() throws {
        if UIDevice.current.userInterfaceIdiom == .pad {
            XCUIApplication().tables["Sidebar"].buttons["NavigateToConversion"].tap()
        }
        
        sleep(2)
        snapshot("1Launch\(screenshotEndingName)")
    }
    
    func testConvertAmountScreenshot() throws {
        if UIDevice.current.userInterfaceIdiom == .pad {
            XCUIApplication().tables["Sidebar"].buttons["NavigateToConversion"].tap()
        }
        
        let conversionTextField = XCUIApplication().textFields["ConversionTextField"]
        conversionTextField.tap()
        conversionTextField.typeText("1030.15\n")
        snapshot("2Conversion\(screenshotEndingName)")
    }
    
    func testCurrencySelectorScreenshot() throws {
        if UIDevice.current.userInterfaceIdiom == .pad {
            XCUIApplication().tables["Sidebar"].buttons["NavigateToConversion"].tap()
        }
        
        XCUIApplication().scrollViews.buttons["OpenCurrencySelector"].tap()
        snapshot("3CurrencySelector\(screenshotEndingName)")
    }
    
    func testFavoriteScreenshot() throws {
        if UIDevice.current.userInterfaceIdiom == .pad {
            XCUIApplication().tables["Sidebar"].buttons["NavigateToFavorites"].tap()
        } else {
            XCUIApplication().tabBars.buttons.element(boundBy: 1).tap()
        }
        
        sleep(1)
        
        snapshot("4Favorites\(screenshotEndingName)")
    }
}