[8.x] Fix Artisan test method PendingCommand::doesntExpectOutput()
always causing a failed test
#36806
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It seems #35160 added in v8.15.0 (2020-11-17) has never worked for the successful test case. e.g.,
When that string isn't output by the command, this test should pass. Instead this exception is thrown and the test fails:
Mockery::close()
intearDown()
throws this exception because->once()
was called when setting up thedoesntExpectOutput()
mock. But that isn't needed. During a successful test run, that should be called zero times. It looks like that code snippet was copy and pasted from the oppositeexpectedOutput
case a few lines up.So I've added some
InteractsWithConsole::artisan()
test coverage on assertion methodsassertExitCode()
,doesntExpectOutput()
, andexpectsOutput()
(this one requires some Mockeryonce()
exception suppression).