pharia-skill-test 0.6.1

Test helpers for testing Pharia Kernel skill components locally.
Documentation
use pharia_skill::Csi;
use pharia_skill_test::StubCsi;
use schemars::{schema::RootSchema, schema_for};
use ureq::json;

#[pharia_skill::skill]
fn can_compile_with_result(_csi: &impl Csi, _input: &str) -> anyhow::Result<Vec<String>> {
    Err(anyhow::anyhow!("Hello, world!"))
}

#[test]
fn mock_csi() {
    let output = can_compile_with_result(&StubCsi, "Hello, world!");
    assert!(output.is_err());
}

#[test]
fn metadata() {
    use pharia_skill::bindings::exports::pharia::skill::skill_handler::Guest;
    let metadata = __pharia_skill::Skill::metadata();

    let input_schema =
        pharia_skill::bindings::json::from_slice::<RootSchema>(&metadata.input_schema).unwrap();
    let output_schema =
        pharia_skill::bindings::json::from_slice::<RootSchema>(&metadata.output_schema).unwrap();

    assert_eq!(input_schema, schema_for!(&str));
    assert_eq!(output_schema, schema_for!(Vec<String>));
    assert_eq!(metadata.description, None);
    assert!(jsonschema::meta::is_valid(&json!(input_schema)));
    assert!(jsonschema::meta::is_valid(&json!(output_schema)));
}