#[cfg(test)]
mod form_workflow_tests {
use leptos::prelude::*;
use wasm_bindgen_test::*;
wasm_bindgen_test_configure!(run_in_browser);
use leptos_shadcn_button::default::{Button, ButtonVariant};
use leptos_shadcn_input::default::Input;
use leptos_shadcn_card::default::{Card, CardHeader, CardTitle, CardContent};
#[wasm_bindgen_test]
fn test_form_workflow_integration() {
let form_data = RwSignal::new(String::new());
let is_submitted = RwSignal::new(false);
mount_to_body(move || {
view! {
}
});
let document = web_sys::window().unwrap().document().unwrap();
// Test form submission workflow
let input = document.query_selector("input").unwrap().unwrap();
let html_input = input.unchecked_into::();
html_input.set_value("test data");
let button = document.query_selector("button").unwrap().unwrap();
let click_event = web_sys::MouseEvent::new("click").unwrap();
button.dispatch_event(&click_event).unwrap();
// Verify state management
let status = document.query_selector(".submission-status").unwrap().unwrap();
assert!(status.text_content().unwrap().contains("submitted successfully"));
}
#[wasm_bindgen_test]
fn test_form_workflow_accessibility() {
mount_to_body(|| {
view! {
}
});
let document = web_sys::window().unwrap().document().unwrap();
// Test accessibility attributes
let main = document.query_selector("[role='main']").unwrap();
assert!(main.is_some(), "Main role should be present");
let button = document.query_selector("button").unwrap().unwrap();
assert_eq!(button.get_attribute("aria-label").unwrap(), "Submit form");
assert_eq!(button.get_attribute("aria-describedby").unwrap(), "button-description");
let input = document.query_selector("input").unwrap().unwrap();
assert_eq!(input.get_attribute("aria-label").unwrap(), "Email address");
assert_eq!(input.get_attribute("aria-required").unwrap(), "true");
}
}