test(kanban): exercise checked form handler path

Add a kanban example smoke test for #[slhx::form] plus #[slhx::handler] over the generated create_card form resource.

req: form/001

req: form/004

req: form/006

req: derive_handler/003
This commit is contained in:
slhx agent
2026-05-25 23:54:09 +02:00
parent 11f710d276
commit 54aecff6e8
+22
View File
@@ -15,6 +15,14 @@ mod tests {
columns: Vec<String>,
}
#[allow(dead_code)]
#[derive(Clone, Debug)]
#[slhx::form("create_card")]
struct CreateCard {
title: String,
column: String,
}
// req: examples/001 req: codegen/002 req: list/003
#[test]
fn kanban_board_updates_generated_slot() {
@@ -48,6 +56,20 @@ mod tests {
Selector::parse(value).expect("test selector parses")
}
// req: examples/001 req: form/001 req: form/004 req: form/006 req: derive_handler/003
#[test]
fn kanban_form_handler_is_checked_against_hemplate_form() {
#[slhx::handler]
fn create_card(_form: slhx::Form<CreateCard>) -> impl IntoEffect {
ui::board::slots::notice.text("queued")
}
let effect = inspect(create_card(ui::board::forms::create_card.typed::<CreateCard>()));
assert!(effect.has_slot(ui::board::slots::notice));
assert!(matches!(effect.ops(), [Effect::Put { payload: Payload::Text(_), .. }]));
}
// req: examples/001 req: form/002 req: codegen/003
#[test]
fn kanban_template_exports_form_and_card_handles() {