From aadf8bb7b090b828c458c95fe84ce0dee234232f Mon Sep 17 00:00:00 2001 From: jbtrystram Date: Thu, 12 May 2022 11:58:31 +0200 Subject: [PATCH] feat: Allow getting the Assert from an AssertError --- src/assert.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/assert.rs b/src/assert.rs index dbf1c4c..ea58309 100644 --- a/src/assert.rs +++ b/src/assert.rs @@ -1035,6 +1035,33 @@ impl AssertError { fn panic(self) -> T { panic!("{}", self) } + + /// Returns the [`Assert`] wrapped into the [`Result`] produced by + /// the `try_` variants of the [`Assert`] methods. + /// + /// # Examples + /// + /// ```rust,no_run + /// use assert_cmd::prelude::*; + /// + /// use std::process::Command; + /// use predicates::prelude::*; + /// + /// let result = Command::new("echo") + /// .assert(); + /// + /// match result.try_success() { + /// Ok(assert) => { + /// assert.stdout(predicate::eq(b"Success\n" as &[u8])); + /// } + /// Err(err) => { + /// err.assert().stdout(predicate::eq(b"Err but some specific output you might want to check\n" as &[u8])); + /// } + /// } + /// ``` + pub fn assert(self) -> Assert { + self.assert + } } impl Error for AssertError {}