From e042bf7d3aafbb5d418f4858a9d7ca850a5b3e3d Mon Sep 17 00:00:00 2001 From: Fabio Ivona Date: Fri, 1 Oct 2021 15:52:45 +0200 Subject: [PATCH] removes expection expectations if test is marked as skipped --- src/Factories/TestCaseFactory.php | 4 ++++ src/Support/HigherOrderMessageCollection.php | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/Factories/TestCaseFactory.php b/src/Factories/TestCaseFactory.php index bc75f5c1..d2a98c88 100644 --- a/src/Factories/TestCaseFactory.php +++ b/src/Factories/TestCaseFactory.php @@ -140,6 +140,10 @@ final class TestCaseFactory $proxies = $this->proxies; $factoryTest = $this->test; + if ($chains->hasMessage('markTestSkipped')) { + $proxies->forgetMessage('expectException'); + } + /** * @return mixed */ diff --git a/src/Support/HigherOrderMessageCollection.php b/src/Support/HigherOrderMessageCollection.php index a6634685..68e5c3df 100644 --- a/src/Support/HigherOrderMessageCollection.php +++ b/src/Support/HigherOrderMessageCollection.php @@ -69,4 +69,24 @@ final class HigherOrderMessageCollection 0, ); } + + public function hasMessage(string $name): bool + { + foreach ($this->messages as $message) { + if ($message->name === $name) { + return true; + } + } + + return false; + } + + public function forgetMessage(string $name): void + { + foreach ($this->messages as $index => $message) { + if ($message->name === $name) { + unset($this->messages[$index]); + } + } + } }