mithril_cardano_node_chain/test/
mod.rs

1//! Test utilities.
2//!
3//! ⚠ Do not use in production code ⚠
4//!
5//! This module provides in particular test doubles for the traits defined in this crate.
6
7pub mod double;
8#[cfg(test)]
9pub(crate) mod test_cli_runner;
10
11#[cfg(test)]
12pub(crate) struct TestLogger;
13
14#[cfg(test)]
15impl TestLogger {
16    fn from_writer<W: std::io::Write + Send + 'static>(writer: W) -> slog::Logger {
17        use slog::Drain;
18        use std::sync::Arc;
19
20        let decorator = slog_term::PlainDecorator::new(writer);
21        let drain = slog_term::CompactFormat::new(decorator).build().fuse();
22        let drain = slog_async::Async::new(drain).build().fuse();
23        slog::Logger::root(Arc::new(drain), slog::o!())
24    }
25
26    pub(crate) fn stdout() -> slog::Logger {
27        Self::from_writer(slog_term::TestStdoutWriter)
28    }
29}