Something went wrong. Try again.
A library for helping build high quality forms in SwiftUI and TCA
Something went wrong. Try again.
2.0 kB · 81 lines
Swift
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#if canImport(SwiftUI)import ComposableArchitecture2import SwiftUIimport Testing@testable import ComposableForms
@Suitestruct FormViewTests { @Test @MainActor func fieldBindingSyntaxBuilds() { let store = Store(initialState: ViewTestForm.State(value: ViewTestValue())) { ViewTestForm(fields: []) }
let view = ComposableForm(store) { FormField(\.name) { $field in TextField("Name", text: $field) .submitLabel(.next) } }
_ = view }
@Test @MainActor func fieldStyleSyntaxBuilds() { let store = Store(initialState: ViewTestForm.State(value: ViewTestValue())) { ViewTestForm(fields: []) }
let view = ComposableForm(store) { FormField(\.name) { $field in TextField("Name", text: $field) } } .formFieldStyle(ViewTestFormFieldStyle())
_ = view }
@Test @MainActor func scopedFieldIDsMatchFormDefinitionIDs() { let fields: [FormViewFieldDefinition<ViewTestValue>] = FormScope(\.profile) { FormField(\.displayName) { $field in TextField("Display name", text: $field) } }
#expect( fields.map(\.id) == [ AnyHashable( ScopedFormFieldID( scope: AnyHashable(\ViewTestValue.profile), field: AnyHashable(\ViewTestProfile.displayName) ) ), ] ) }}
private typealias ViewTestForm = ComposableForms.Form<ViewTestValue>
private struct ViewTestValue: Equatable { var name = "" var profile = ViewTestProfile()}
private struct ViewTestProfile: Equatable { var displayName = ""}
private struct ViewTestFormFieldStyle: FormFieldStyle { func makeBody(configuration: FormFieldStyleConfiguration) -> some View { configuration.content }}#endif