cln-plugin: Add test for cln-plugin send_custom_notification

Also fix Makefile for rust plugin examples

Also add in a missing assert in the test_plugin_start test
This commit is contained in:
Chris Guida
2023-09-14 17:34:13 -06:00
committed by Peter Neuroth
parent 80ba3a573d
commit c6262189b7
3 changed files with 36 additions and 4 deletions

View File

@@ -2,8 +2,11 @@
//! plugins using the Rust API against Core Lightning.
#[macro_use]
extern crate serde_json;
use cln_plugin::{options, Builder, Error, Plugin};
use cln_plugin::{messages, options, Builder, Error, Plugin};
use tokio;
const TEST_NOTIF_TAG: &str = "test_custom_notification";
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let state = ();
@@ -25,8 +28,15 @@ async fn main() -> Result<(), anyhow::Error> {
"Retrieve options from this plugin",
testoptions,
)
.rpcmethod(
"test-custom-notification",
"send a test_custom_notification event",
test_send_custom_notification,
)
.subscribe("connect", connect_handler)
.subscribe("test_custom_notification", test_receive_custom_notification)
.hook("peer_connected", peer_connected_handler)
.notification(messages::NotificationTopic::new(TEST_NOTIF_TAG))
.start(state)
.await?
{
@@ -46,6 +56,26 @@ async fn testmethod(_p: Plugin<()>, _v: serde_json::Value) -> Result<serde_json:
Ok(json!("Hello"))
}
async fn test_send_custom_notification(
p: Plugin<()>,
_v: serde_json::Value,
) -> Result<serde_json::Value, Error> {
let custom_notification = json!({
"test": "test",
});
p.send_custom_notification(TEST_NOTIF_TAG.to_string(), custom_notification)
.await?;
Ok(json!("Notification sent"))
}
async fn test_receive_custom_notification(
_p: Plugin<()>,
v: serde_json::Value,
) -> Result<(), Error> {
log::info!("Received a test_custom_notification: {}", v);
Ok(())
}
async fn connect_handler(_p: Plugin<()>, v: serde_json::Value) -> Result<(), Error> {
log::info!("Got a connect notification: {}", v);
Ok(())