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:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user