Skip to main content

TestConsole

Struct TestConsole 

Source
pub struct TestConsole { /* private fields */ }
Expand description

A Console that captures output for testing

This wraps a FastMcpConsole with a buffer writer to capture all output. Use console() to get the inner console for rendering, then use output(), contains(), and assertion methods to verify the output.

Implementations§

Source§

impl TestConsole

Source

pub fn new() -> Self

Create a new test console that captures output

Note: Internally uses rich mode to ensure output goes through the writer. ANSI codes are stripped when reading via output() and output_string().

Source

pub fn new_rich() -> Self

Create a test console that renders rich output (for visual testing)

Source

pub fn console(&self) -> &FastMcpConsole

Get the underlying console for passing to renderers

Source

pub fn output(&self) -> Vec<String>

Get all captured output (ANSI codes stripped)

Source

pub fn raw_output(&self) -> Vec<String>

Get all captured output (with ANSI codes)

Source

pub fn output_string(&self) -> String

Get output as a single string

Source

pub fn contains(&self, needle: &str) -> bool

Check if output contains a string (case-insensitive)

Source

pub fn contains_all(&self, needles: &[&str]) -> bool

Check if output contains all of the given strings

Source

pub fn matches(&self, pattern: &str) -> bool

Check if output matches a regex pattern

Source

pub fn assert_contains(&self, needle: &str)

Assert that output contains a string

§Panics

Panics if the output does not contain the needle string.

Source

pub fn assert_not_contains(&self, needle: &str)

Assert that output does NOT contain a string

§Panics

Panics if the output contains the needle string.

Source

pub fn assert_line_count(&self, expected: usize)

Assert output has specific number of lines

§Panics

Panics if the line count doesn’t match expected.

Source

pub fn clear(&self)

Clear the buffer

Source

pub fn debug_print(&self)

Print output for debugging (in tests)

Source

pub fn is_rich(&self) -> bool

Check if the console reports as rich mode

Note: The internal console is always in rich mode to capture output, but this returns the mode the TestConsole was created with.

Trait Implementations§

Source§

impl Clone for TestConsole

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TestConsole

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TestConsole

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, _span: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more