ios/AuthenticatorShared/UI/Platform/Application/Views/BitwardenMenuFieldTests.swift
2025-10-06 15:18:35 -05:00

58 lines
1.3 KiB
Swift

import SwiftUI
import ViewInspector
import XCTest
@testable import AuthenticatorShared
class BitwardenMenuFieldTests: BitwardenTestCase {
// MARK: Types
enum TestValue: String, CaseIterable, Menuable {
case value1
case value2
var localizedName: String {
rawValue
}
}
// MARK: Properties
var selection: TestValue!
var subject: BitwardenMenuField<TestValue, EmptyView>!
// MARK: Setup & Teardown
override func setUp() {
super.setUp()
selection = .value1
let binding = Binding {
self.selection!
} set: { newValue in
self.selection = newValue
}
subject = BitwardenMenuField(
options: TestValue.allCases,
selection: binding,
)
}
override func tearDown() {
super.tearDown()
selection = nil
subject = nil
}
// MARK: Tests
func test_newSelection() throws {
let picker = try subject.inspect().find(ViewType.Picker.self)
try picker.select(value: TestValue.value2)
XCTAssertEqual(selection, .value2)
let menu = try subject.inspect().find(ViewType.Menu.self)
let label = try menu.labelView().find(ViewType.Text.self).string()
XCTAssertEqual(label, "value2")
}
}