tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_string_action_id_is_queued tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_regex_action_id_is_accepted tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_constraint_dict_action_id_is_accepted tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_non_callable_callback_raises tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_empty_string_action_id_raises tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_none_action_id_raises tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_get_slack_action_handlers_returns_copy tests/gateway/test_slack_plugin_action_handlers.py::TestRegisterSlackActionHandlerAPI::test_multiple_plugins_each_recorded tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_plugin_handler_wired_into_app tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_no_plugin_handlers_does_not_break_connect tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_plugin_exception_does_not_propagate_to_slack tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_plugin_handler_invoked_with_slack_args tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_wrapper_signature_only_exposes_slack_bolt_args tests/gateway/test_slack_plugin_action_handlers.py::TestSlackAdapterPluginActionWiring::test_plugin_loader_failure_does_not_break_connect