secant-ios-wallet/secantTests/OnboardingTests/OnboardingStoreTests.swift

146 lines
4.2 KiB
Swift
Raw Normal View History

2021-10-12 04:25:34 -07:00
//
// OnboardingStoreTests.swift
// OnboardingStoreTests
//
// Created by Adam Stener on 10/10/21.
//
import XCTest
import ComposableArchitecture
@testable import secant_testnet
class OnboardingStoreTests: XCTestCase {
func testIncrementingOnboarding() {
let store = TestStore(
initialState: OnboardingFlowReducer.State(
walletConfig: .default,
2022-03-01 01:50:57 -08:00
importWalletState: .placeholder
),
reducer: OnboardingFlowReducer()
2021-10-12 04:25:34 -07:00
)
2021-11-04 05:41:39 -07:00
store.send(.next) {
2021-10-12 04:25:34 -07:00
$0.index += 1
2021-11-09 03:59:03 -08:00
XCTAssertFalse($0.isFinalStep)
XCTAssertFalse($0.isInitialStep)
2021-10-15 04:15:12 -07:00
XCTAssertEqual($0.currentStep, $0.steps[1])
2021-11-05 05:26:20 -07:00
XCTAssertEqual($0.offset, -20.0)
2021-11-04 05:41:39 -07:00
XCTAssertEqual($0.progress, 50)
2021-10-12 04:25:34 -07:00
}
2021-11-04 05:41:39 -07:00
store.send(.next) {
2021-10-12 04:25:34 -07:00
$0.index += 1
2021-11-09 03:59:03 -08:00
XCTAssertFalse($0.isFinalStep)
XCTAssertFalse($0.isInitialStep)
2021-10-15 04:15:12 -07:00
XCTAssertEqual($0.currentStep, $0.steps[2])
2021-11-05 05:26:20 -07:00
XCTAssertEqual($0.offset, -40.0)
2021-11-04 05:41:39 -07:00
XCTAssertEqual($0.progress, 75)
}
store.send(.next) {
$0.index += 1
2021-11-09 03:59:03 -08:00
XCTAssertTrue($0.isFinalStep)
XCTAssertFalse($0.isInitialStep)
2021-11-04 05:41:39 -07:00
XCTAssertEqual($0.currentStep, $0.steps[3])
2021-11-05 05:26:20 -07:00
XCTAssertEqual($0.offset, -60.0)
XCTAssertEqual($0.progress, 100)
}
}
func testIncrementingPastTotalStepsDoesNothing() {
let store = TestStore(
initialState: OnboardingFlowReducer.State(
walletConfig: .default,
importWalletState: .placeholder,
index: 3
2022-03-01 01:50:57 -08:00
),
reducer: OnboardingFlowReducer()
2021-11-05 05:26:20 -07:00
)
store.send(.next)
store.send(.next)
2021-10-12 04:25:34 -07:00
}
func testDecrementingOnboarding() {
let store = TestStore(
initialState: OnboardingFlowReducer.State(
walletConfig: .default,
importWalletState: .placeholder,
index: 2
2022-03-01 01:50:57 -08:00
),
reducer: OnboardingFlowReducer()
2021-10-12 04:25:34 -07:00
)
2021-11-04 05:41:39 -07:00
store.send(.back) {
2021-10-12 04:25:34 -07:00
$0.index -= 1
2021-11-09 03:59:03 -08:00
XCTAssertFalse($0.isFinalStep)
XCTAssertFalse($0.isInitialStep)
2021-10-15 04:15:12 -07:00
XCTAssertEqual($0.currentStep, $0.steps[1])
2021-11-05 05:26:20 -07:00
XCTAssertEqual($0.offset, -20.0)
2021-11-04 05:41:39 -07:00
XCTAssertEqual($0.progress, 50)
2021-10-12 04:25:34 -07:00
}
2021-11-04 05:41:39 -07:00
store.send(.back) {
2021-10-12 04:25:34 -07:00
$0.index -= 1
2021-11-09 03:59:03 -08:00
XCTAssertFalse($0.isFinalStep)
XCTAssertTrue($0.isInitialStep)
2021-10-15 04:15:12 -07:00
XCTAssertEqual($0.currentStep, $0.steps[0])
2021-11-05 05:26:20 -07:00
XCTAssertEqual($0.offset, 0.0)
XCTAssertEqual($0.progress, 25)
}
}
func testDecrementingPastFirstStepDoesNothing() {
let store = TestStore(
initialState: OnboardingFlowReducer.State(
walletConfig: .default,
2022-03-01 01:50:57 -08:00
importWalletState: .placeholder
),
reducer: OnboardingFlowReducer()
2021-11-05 05:26:20 -07:00
)
store.send(.back)
store.send(.back)
2021-11-04 05:41:39 -07:00
}
func testSkipOnboarding() {
let initialIndex = 1
2021-11-05 05:26:20 -07:00
2021-11-04 05:41:39 -07:00
let store = TestStore(
initialState: OnboardingFlowReducer.State(
walletConfig: .default,
importWalletState: .placeholder,
index: initialIndex
2022-03-01 01:50:57 -08:00
),
reducer: OnboardingFlowReducer()
2021-11-04 05:41:39 -07:00
)
store.send(.skip) {
$0.index = $0.steps.count - 1
$0.skippedAtindex = initialIndex
2021-11-09 03:59:03 -08:00
XCTAssertTrue($0.isFinalStep)
XCTAssertFalse($0.isInitialStep)
2021-11-04 05:41:39 -07:00
XCTAssertEqual($0.currentStep, $0.steps[3])
2021-11-05 05:26:20 -07:00
XCTAssertEqual($0.offset, -60.0)
2021-11-04 05:41:39 -07:00
XCTAssertEqual($0.progress, 100)
}
store.send(.back) {
$0.skippedAtindex = nil
$0.index = initialIndex
2021-11-09 03:59:03 -08:00
XCTAssertFalse($0.isFinalStep)
XCTAssertFalse($0.isInitialStep)
2021-11-04 05:41:39 -07:00
XCTAssertEqual($0.currentStep, $0.steps[1])
2021-11-05 05:26:20 -07:00
XCTAssertEqual($0.offset, -20.0)
2021-11-04 05:41:39 -07:00
XCTAssertEqual($0.progress, 50)
2021-10-12 04:25:34 -07:00
}
}
}