nitka 0.5.0

NITKA - Near Integration Test Kit and Automation
Documentation
use near_workspaces::result::{ExecutionFailure, ExecutionResult, ExecutionSuccess};

pub trait PanicFinder {
    fn has_panic(&self, message: &str) -> bool;
}

impl PanicFinder for Result<ExecutionSuccess, ExecutionFailure> {
    fn has_panic(&self, message: &str) -> bool {
        match self {
            Ok(ok) => ok.has_panic(message),
            Err(err) => err.has_panic(message),
        }
    }
}

impl<T> PanicFinder for ExecutionResult<T> {
    fn has_panic(&self, message: &str) -> bool {
        self.outcomes()
            .into_iter()
            .map(|item| match item.clone().into_result() {
                Ok(_) => None,
                Err(err) => Some(err),
            })
            .any(|item| match item {
                None => false,
                Some(err) => format!("{err:?}").contains(message),
            })
    }
}